txbUserNameという複数行のテキストボックスを含むASP.NETページがあります。次に、テキストボックスに3つの名前を貼り付けます。これらの名前は、垂直方向に配置されます。
- ジェイソン
- アミー
- カレン
キャリッジリターンまたは改行を検出するたびに、名前を取得して別々の文字列に分割できるようにしたいと思います。私は配列が行く方法かもしれないと思っています。何か案は?
ありがとうございました。
txbUserNameという複数行のテキストボックスを含むASP.NETページがあります。次に、テキストボックスに3つの名前を貼り付けます。これらの名前は、垂直方向に配置されます。
キャリッジリターンまたは改行を検出するたびに、名前を取得して別々の文字列に分割できるようにしたいと思います。私は配列が行く方法かもしれないと思っています。何か案は?
ありがとうございました。
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」を含む3つの文字列配列に分割されます。
\r\n
いずれかをに置き換えて\n
から、次を使用して分割し\n
ます。
string[] arr = txbUserName.Text.Replace("\r\n", "\n").Split("\n".ToCharArray());
String.Split関数を見てください(正確な構文がわからない、目の前にIDEがない)。
string[] names = txbUserName.Text.Split(Environment.Newline);
mystring.Split(new Char[] { '\n' })
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";