64

txbUserNameという複数行のテキストボックスを含むASP.NETページがあります。次に、テキストボックスに3つの名前を貼り付けます。これらの名前は、垂直方向に配置されます。

  • ジェイソン
  • アミー
  • カレン

キャリッジリターンまたは改行を検出するたびに、名前を取得して別々の文字列に分割できるようにしたいと思います。私は配列が行く方法かもしれないと思っています。何か案は?

ありがとうございました。

4

7 に答える 7

141
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つの文字列配列に分割されます。

于 2009-11-29T03:40:01.643 に答える
7

\r\nいずれかをに置き換えて\nから、次を使用して分割し\nます。

string[] arr = txbUserName.Text.Replace("\r\n", "\n").Split("\n".ToCharArray());
于 2009-11-29T03:53:29.480 に答える
4

String.Split関数を見てください(正確な構文がわからない、目の前にIDEがない)。

string[] names = txbUserName.Text.Split(Environment.Newline);
于 2009-11-29T03:41:22.833 に答える
1

String.Split

mystring.Split(new Char[] { '\n' })
于 2009-11-29T03:40:14.373 に答える
1
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();
        }
    }
于 2011-10-20T06:22:05.167 に答える
0

これを試して:

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";
于 2017-04-21T09:25:35.620 に答える