Как разделить строки на возврат каретки с помощью C#?
У меня есть ASP.NET страница с многострочным текстовым полем txbUserName. Затем я вставляю в текстовое поле 3 имени, и они выравниваются по вертикали:
- Джейсон
- Эмми
- Карен
Я хочу иметь возможность каким-то образом взять имена и разделить их на отдельные строки всякий раз, когда я обнаруживаю возврат каретки или новую строку. я думаю, что массив может быть способом пойти. Есть идеи?
спасибо.
6 ответов
string[] result = input.Split(new string[] {"\n", "\r\n"}, StringSplitOptions.RemoveEmptyEntries);
это охватывает типы \n и\r \ n новых строк и удаляет пустые строки, которые могут вводить пользователи.
Я тестировал, используя следующий код:
string test = "PersonA\nPersonB\r\nPersonC\n";
string[] result = test.Split(new string[] {"\n", "\r\n"}, StringSplitOptions.RemoveEmptyEntries);
foreach (string s in result)
Console.WriteLine(s);
и он работает правильно, разбив на три строковых массива с записями "PersonA", "PersonB"и " PersonC".
заменить \r\n
С \n
, затем с помощью \n
:
string[] arr = txbUserName.Text.Replace("\r\n", "\n").Split("\n".ToCharArray());
взгляните на строку.Функция Split (не уверен в точном синтаксисе, нет IDE передо мной).
string[] names = txbUserName.Text.Split(Environment.Newline);
using System.Text;
using System.Text.RegularExpressions;
protected void btnAction_Click(object sender, EventArgs e)
{
string value = txtDetails.Text;
char[] delimiter = new char[] { ';','[' };
string[] parts = value.Split(delimiter, StringSplitOptions.RemoveEmptyEntries);
for (int i = 0; i < parts.Length; i++)
{
txtFName.Text = parts[0].ToString();
txtLName.Text = parts[1].ToString();
txtAge.Text = parts[2].ToString();
txtDob.Text = parts[3].ToString();
}
}
попробуйте это:
message.Split(Environment.NewLine.ToCharArray(), StringSplitOptions.RemoveEmptyEntries);
если :
var message = "test 1\r\ntest 2";
или
var message = "test 1\ntest 2";
или
var message = "test 1\rtest 2";