[C#] C #에서 문자열에 줄 바꿈 추가

문자열이 있습니다.

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

문자열에 “@”기호가 나타날 때마다 줄 바꿈을 추가해야합니다.

내 결과는 다음과 같아야합니다

fkdfdsfdflkdkfk@
dfsdfjk72388389@
kdkfkdfkkl@
jkdjkfjd@
jjjk@



답변

Environment.NewLine원하는 문자열을 사용할 때마다 사용하십시오 . 예를 들면 :

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

text = text.Replace("@", "@" + System.Environment.NewLine);


답변

다음과 같이 @ 기호 뒤에 줄 바꾸기 문자를 추가 할 수 있습니다.

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

클래스 에서 NewLine속성을 사용할 수도 있습니다 Environment(환경이라고 생각합니다).


답변

이전 답변은 가깝지만 @심볼이 가까이 있어야 한다는 실제 요구 사항을 충족하려면 을 원합니다 str.Replace("@", "@" + System.Environment.NewLine). 그러면 @기호 가 유지 되고 현재 플랫폼에 적합한 줄 바꿈 문자가 추가됩니다.


답변

그런 다음 이전 답변을 수정하십시오.

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

텍스트 파일에 줄 바꿈을 원하지 않으면 보존하지 마십시오.


답변

간단한 문자열 바꾸기가 작업을 수행합니다. 아래 예제 프로그램을 살펴보십시오.

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();
        }
    }
}


답변

다른 사람들이 말했듯이 개행 문자는 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);
        }
    }
}


답변

다른 사람들의 답장을 바탕으로 이와 같은 것이 당신이 찾고있는 것입니다.

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 + "@");
    }
}