在C#中添加一个换行符到一个string

我有一个string。

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

我需要在每个string中出现“@”符号后添加一个换行符。

我的输出应该是这样的

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

您可以在@符号之后添加一个新的行字符,如下所示:

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

你也可以使用Environment类中的NewLine属性(我认为它是Environment)。

以前的答案很接近,但要符合@符号的实际要求,你会希望这是str.Replace("@", "@" + System.Environment.NewLine) 。 这将保持@符号并为当前平台添加适当的换行符。

一个简单的stringreplace将完成这项工作。 看看下面的示例程序:

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

然后,只需修改以前的答案:

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

如果你不需要文本文件中的换行符,那么不要保留它。

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

根据你对其他人的答复,这样的事情就是你要找的东西。

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

你也可以使用string[] something = text.Split('@') 。 确保使用单引号将“@”包含为chartypes。 这将会把包含每个“@”的字符作为单个字存储在数组中。 然后可以使用for循环输出每个( element + System.Environment.NewLine ),或者使用System.IO.File.WriteAllLines([file path + name and extension], [array name])将其写入文本文件。 如果指定的文件不在该位置,则会自动创build。