Een nieuwe regel toevoegen aan een string in C#

Ik heb een string.

string strToProcess = "fkdfdsfdflkdkfk@dfsdfjk72388389@kdkfkdfkkl@jkdjkfjd@jjjk@";

Ik moet een nieuwe regel toevoegen na elke keer dat het “@”-symbool in de tekenreeks voorkomt.

Mijn output zou er zo uit moeten zien

fkdfdsfdflkdkfk@
dfsdfjk72388389@
kdkfkdfkkl@
jkdjkfjd@
jjjk@

Antwoord 1, autoriteit 100%

Gebruik Environment.NewLinewanneer je maar wilt in een string. Een voorbeeld:

string text = "fkdfdsfdflkdkfk@dfsdfjk72388389@kdkfkdfkkl@jkdjkfjd@jjjk@";
text = text.Replace("@", "@" + System.Environment.NewLine);

Antwoord 2, autoriteit 14%

Je kunt een nieuw regelteken toevoegen na het @-symbool als volgt:

string newString = oldString.Replace("@", "@\n");  

Je kunt ook de eigenschap NewLinegebruiken in de klasse Environment(ik denk dat het Environment is).


Antwoord 3, autoriteit 4%

De vorige antwoorden komen in de buurt, maar om te voldoen aan de daadwerkelijke vereiste dat het @-symbool dichtbij blijft, zou u willen dat dit str.Replace("@", "@" + System.Environment.NewLine). Dat behoudt het @-symbool en voegt de juiste nieuwe regeltekens toe voor het huidige platform.


Antwoord 4, autoriteit 2%

Wijzig dan de vorige antwoorden in:

Console.Write(strToProcess.Replace("@", "@" + Environment.NewLine));

Als je de nieuwe regels niet in het tekstbestand wilt, bewaar het dan niet.


Antwoord 5, autoriteit 2%

Een eenvoudige string-vervanging zal het werk doen. Bekijk hieronder het voorbeeldprogramma:

using System;
namespace NewLineThingy
{
    class Program
    {
        static void Main(string[] args)
        {
            string str = "fkdfdsfdflkdkfk@dfsdfjk72388389@kdkfkdfkkl@jkdjkfjd@jjjk@";
            str = str.Replace("@", "@" + Environment.NewLine);
            Console.WriteLine(str);
            Console.ReadKey();
        }
    }
}

Antwoord 6

zoals anderen al zeiden, nieuwe regel char geeft je een nieuwe regel in een tekstbestand in Windows.
probeer het volgende:

using System;
using System.IO;
static class Program
{
    static void Main()
    {
        WriteToFile
        (
        @"C:\test.txt",
        "fkdfdsfdflkdkfk@dfsdfjk72388389@kdkfkdfkkl@jkdjkfjd@jjjk@",
        "@"
        );
        /*
        output in test.txt in windows =
        fkdfdsfdflkdkfk@
        dfsdfjk72388389@
        kdkfkdfkkl@
        jkdjkfjd@
        jjjk@ 
        */
    }
    public static void WriteToFile(string filename, string text, string newLineDelim)
    {
        bool equal = Environment.NewLine == "\r\n";
        //Environment.NewLine == \r\n = True
        Console.WriteLine("Environment.NewLine == \\r\\n = {0}", equal);
        //replace newLineDelim with newLineDelim + a new line
        //trim to get rid of any new lines chars at the end of the file
        string filetext = text.Replace(newLineDelim, newLineDelim + Environment.NewLine).Trim();
        using (StreamWriter sw = new StreamWriter(File.OpenWrite(filename)))
        {
            sw.Write(filetext);
        }
    }
}

Antwoord 7

Gebaseerd op uw antwoorden op alle anderen, is zoiets als dit wat u zoekt.

string file = @"C:\file.txt";
string strToProcess = "fkdfdsfdflkdkfk@dfsdfjk72388389@kdkfkdfkkl@jkdjkfjd@jjjk@";
string[] lines = strToProcess.Split(new char[] { '@' }, StringSplitOptions.RemoveEmptyEntries);
using (StreamWriter writer = new StreamWriter(file))
{
    foreach (string line in lines)
    {
        writer.WriteLine(line + "@");
    }
}

Antwoord 8

string strToProcess = "fkdfdsfdflkdkfk@dfsdfjk72388389@kdkfkdfkkl@jkdjkfjd@jjjk@";
var result = strToProcess.Replace("@", "@ \r\n");
Console.WriteLine(result);

Uitvoer


Antwoord 9

string str = "fkdfdsfdflkdkfk@dfsdfjk72388389@kdkfkdfkkl@jkdjkfjd@jjjk@";
str = str.Replace("@", Environment.NewLine);
richTextBox1.Text = str;

Antwoord 10

Je zou ook string[] something = text.Split('@')kunnen gebruiken. Zorg ervoor dat u enkele aanhalingstekens gebruikt om de “@” op te slaan om het op te slaan als een char-type.
Hierdoor worden de tekens tot en met elke “@” als afzonderlijke woorden in de array opgeslagen. U kunt vervolgens elk (element + System.Environment.NewLine) uitvoeren met een for-lus of het naar een tekstbestand schrijven met System.IO.File.WriteAllLines([file path + name and extension], [array name]). Als het opgegeven bestand niet op die locatie bestaat, wordt het automatisch aangemaakt.


Antwoord 11

protected void Button1_Click(object sender, EventArgs e)
{
    string str = "fkdfdsfdflkdkfk@dfsdfjk72388389@kdkfkdfkkl@jkdjkfjd@jjjk@";
    str = str.Replace("@", "@" + "<br/>");
    Response.Write(str);       
}

Antwoord 12

using System;
using System.IO;
using System.Text;
class Test
{
    public static void Main()
    {
             string strToProcess = "fkdfdsfdflkdkfk@dfsdfjk72388389@kdkfkdfkkl@jkdjkfjd@jjjk@";
            strToProcess.Replace("@", Environment.NewLine);
            Console.WriteLine(strToProcess);
    }
}

Other episodes