Ответ 1
string text = "[email protected]@[email protected]@[email protected]";
text = text.Replace("@", "@" + System.Environment.NewLine);
У меня есть строка.
string strToProcess = "[email protected]@[email protected]@[email protected]";
Мне нужно добавить новую строку после каждого появления символа "@" в строке.
Мой вывод должен быть таким
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
string text = "[email protected]@[email protected]@[email protected]";
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 = "[email protected]@[email protected]@[email protected]";
str = str.Replace("@", "@" + Environment.NewLine);
Console.WriteLine(str);
Console.ReadKey();
}
}
}
поскольку другие сказали, что новая строка char предоставит вам новую строку в текстовом файле в окнах. попробуйте следующее:
using System;
using System.IO;
static class Program
{
static void Main()
{
WriteToFile
(
@"C:\test.txt",
"[email protected]@[email protected]@[email protected]",
"@"
);
/*
output in test.txt in windows =
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
*/
}
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 = "[email protected]@[email protected]@[email protected]";
string[] lines = strToProcess.Split(new char[] { '@' }, StringSplitOptions.RemoveEmptyEntries);
using (StreamWriter writer = new StreamWriter(file))
{
foreach (string line in lines)
{
writer.WriteLine(line + "@");
}
}
string str = "[email protected]@[email protected]@[email protected]";
str = str.Replace("@", Environment.NewLine);
richTextBox1.Text = str;
Вы также можете использовать string[] something = text.Split('@')
. Убедитесь, что вы используете одиночные кавычки, чтобы окружить "@", чтобы сохранить его как тип char
.
Это сохранит символы до и включит каждый "@" в качестве отдельных слов в массиве. Затем вы можете вывести каждый (element + System.Environment.NewLine
) с помощью цикла for или записать его в текстовый файл с помощью System.IO.File.WriteAllLines([file path + name and extension], [array name])
. Если указанный файл не существует в этом месте, он будет автоматически создан.
protected void Button1_Click(object sender, EventArgs e)
{
string str = "[email protected]@[email protected]@[email protected]";
str = str.Replace("@", "@" + "<br/>");
Response.Write(str);
}