紐があります。
string strToProcess = "fkdfdsfdflkdkfk@dfsdfjk72388389@kdkfkdfkkl@jkdjkfjd@jjjk@";
文字列に「@」記号が出現するたびに改行を追加する必要があります。
私の出力はこのようになるはずです
fkdfdsfdflkdkfk@
dfsdfjk72388389@
kdkfkdfkkl@
jkdjkfjd@
jjjk@
紐があります。
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
)は不変オブジェクトであるため、これは適切なソリューションではありません。つまり、文字列全体がコピーされます。String.Replaceなどの操作には、System.Text.StringBuilderオブジェクトを使用する方が適切です。
次のように、@記号の後に改行文字を追加できます。
string newString = oldString.Replace("@", "@\n");
クラスでNewLine
プロパティを使用することもできEnvironment
ます(環境だと思います)。
次に、前の回答を次のように変更します。
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();
}
}
}
他の人が言ったように、改行文字はウィンドウのテキストファイルに改行を与えるでしょう。以下を試してください:
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 + "@");
}
}
string strToProcess = "fkdfdsfdflkdkfk@dfsdfjk72388389@kdkfkdfkkl@jkdjkfjd@jjjk@";
var result = strToProcess.Replace("@", "@ \r\n");
Console.WriteLine(result);
も使用できますstring[] something = text.Split('@')
。「@」をchar
タイプとして格納するには、一重引用符を使用してください。これにより、各「@」までの文字が配列内の個々の単語として格納されます。その後element + System.Environment.NewLine
、forループを使用して各()を出力するか、を使用してテキストファイルに書き込むことができますSystem.IO.File.WriteAllLines([file path + name and extension], [array name])
。指定したファイルがその場所に存在しない場合は、自動的に作成されます。