HOWTO · Csharp

Aggiungi una nuova linea alla stringa in C#

Scopri tre modi per aggiungere un’interruzione di riga a una stringa C#: usare `\n`, `Environment.NewLine` oppure sostituire un marcatore specifico nel testo esistente.

In questa pagina

Per aggiungere un’interruzione di riga a una stringa in C#, puoi inserire l’escape di avanzamento riga \n, usare Environment.NewLine per l’ambiente .NET corrente oppure sostituire un marcatore specifico in un testo già esistente. Scegli la sequenza di nuova riga adatta alla destinazione del testo: un formato di file o un protocollo di rete potrebbe richiederne una precisa.

Aggiungere un’interruzione di riga a una stringa C# con \n

L’escape \n rappresenta il carattere di avanzamento riga (LF). Inseriscilo nel punto in cui vuoi iniziare la riga successiva in un letterale stringa. Rappresenta il carattere stesso e non seleziona una convenzione di fine riga in base al sistema operativo. L’escape \r rappresenta il carattere di ritorno a capo (CR): usalo se il formato dei dati richiede CR o una coppia CR/LF.

Esegui questo esempio:

Il codice e le etichette o gli output visibili in questa sezione restano in inglese.

using System;

class Program
{
    static void Main()
    {
        string message = "First line.\nSecond line.";
        Console.WriteLine(message);
    }
}
First line.
Second line.

Questo approccio è utile quando controlli la stringa e vuoi inserire esplicitamente un LF. Se la stringa verrà letta da un sistema che richiede un’altra convenzione di fine riga, usa invece la sequenza specificata da quel sistema.

Usare Environment.NewLine per le interruzioni di riga specifiche della piattaforma

Environment.NewLine fornisce la sequenza di fine riga dell’ambiente .NET corrente. Usala quando crei testo destinato a quell’ambiente, per esempio un file di testo orientato alla piattaforma. Non rileva i requisiti di un formato di file o protocollo diverso. Se tali requisiti specificano LF o CR/LF, usa direttamente la sequenza richiesta, anche quando è diversa dalla convenzione dell’ambiente corrente. Consulta la documentazione Microsoft di Environment.NewLine.

Il codice e le etichette o gli output visibili in questa sezione restano in inglese.

using System;

class Program
{
    static void Main()
    {
        string message = "First line." + Environment.NewLine + "Second line.";
        Console.WriteLine(message);
    }
}
First line.
Second line.

Anche Console.WriteLine termina la propria emissione con una nuova riga. La sequenza incorporata separa le due parti di message; la nuova riga finale viene aggiunta dal metodo di output.

Aggiungere un’interruzione di riga dopo aver creato una stringa

Le stringhe C# sono immutabili, quindi modificare il testo produce una nuova stringa. String.Replace() restituisce il nuovo valore: assegnalo di nuovo alla variabile se vuoi conservare la modifica. Il metodo sostituisce ogni occorrenza del marcatore specificato, quindi ogni <break> nell’input diventa un’interruzione di riga. Sostituire un marcatore specifico è più sicuro che sostituire ogni punto, perché le frasi normali possono contenere punteggiatura che deve rimanere invariata. Il metodo è descritto nella documentazione Microsoft esistente di String.Replace().

Il codice e le etichette o gli output visibili in questa sezione restano in inglese.

using System;

class Program
{
    static void Main()
    {
        string message = "First line.<break>Second line.";
        message = message.Replace("<break>", "\n");
        Console.WriteLine(message);
    }
}
First line.
Second line.

Usa un marcatore riservato a questo scopo e che non possa comparire nel testo normale. Se vuoi che la sostituzione segua l’ambiente corrente, sostituiscilo con Environment.NewLine invece che con \n. Se componi tu il testo, di solito è più semplice inserire la nuova riga desiderata nella stringa originale anziché modificarla in seguito.

Nel complesso, i tre approcci coprono le scelte principali: inserire LF in un letterale, usare la sequenza dell’ambiente corrente oppure convertire un marcatore riservato in un testo già esistente. Eventuali requisiti più specifici sulla sequenza di fine riga dipendono dal formato o dal protocollo di destinazione; una mappatura separata tra piattaforme e formati non rientra nell’ambito di questo articolo.