Добавление новой строки в строку в C # - PullRequest
201 голосов
/ 22 октября 2008

У меня есть строка.

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

Мне нужно добавлять новую строку после каждого появления символа «@» в строке.

Мой вывод должен быть таким

fkdfdsfdflkdkfk@
dfsdfjk72388389@
kdkfkdfkkl@
jkdjkfjd@
jjjk@

Ответы [ 12 ]

439 голосов
/ 22 октября 2008
string text = "fkdfdsfdflkdkfk@dfsdfjk72388389@kdkfkdfkkl@jkdjkfjd@jjjk@";

text = text.Replace("@", "@" + System.Environment.NewLine);
64 голосов
/ 22 октября 2008

Вы можете добавить символ новой строки после символа @ следующим образом:

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

Вы также можете использовать свойство NewLine в классе Environment (я думаю, что это Environment).

18 голосов
/ 22 октября 2008

Предыдущие ответы близки, но для удовлетворения фактического требования, чтобы символ @ оставался близко, вы бы хотели, чтобы это было str.Replace("@", "@" + System.Environment.NewLine). Это сохранит символ @ и добавит соответствующие символы новой строки для текущей платформы.

9 голосов
/ 22 октября 2008

Затем просто измените предыдущие ответы на:

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

Если вам не нужны переводы строк в текстовом файле, не сохраняйте его.

6 голосов
/ 22 октября 2008

, как говорили другие, символ новой строки даст вам новую строку в текстовом файле в Windows. попробуйте следующее:

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);
        }
    }
}
6 голосов
/ 22 октября 2008

Простая замена строки сделает работу. Посмотрите на пример программы ниже:

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();
        }
    }
}
3 голосов
/ 22 октября 2008

На основании ваших ответов всем остальным, что-то вроде этого - то, что вы ищете.

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 + "@");
    }
}
2 голосов
/ 25 ноября 2010
string str = "fkdfdsfdflkdkfk@dfsdfjk72388389@kdkfkdfkkl@jkdjkfjd@jjjk@";
str = str.Replace("@", Environment.NewLine);
richTextBox1.Text = str;
1 голос
/ 07 марта 2018
string strToProcess = "fkdfdsfdflkdkfk@dfsdfjk72388389@kdkfkdfkkl@jkdjkfjd@jjjk@";
var result = strToProcess.Replace("@", "@ \r\n");
Console.WriteLine(result);

выход

0 голосов
/ 04 января 2018
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);
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...