0

txtProbe(textbox) があり、そこに 12-34-56-78-90 があることから始めましょう。それらをさまざまなラベルまたはテキストボックスで解析したい...今のところ、1つのテキストボックス-txtParseだけです。そのコードを試してみました - 「-」を削除してから表示しようとしましたが、何も起こりません:

{
        char[] delemiterChars = { '-' };
        string text = txtProbe.Text;
        string[] words = text.Split(delemiterChars);
        txtParse.Text = text;
        foreach (string s in words)
        {
            txtParse.Text = s;
        }
    }

編集: 受信した情報を異なるラベルに設定したい:
12-label1
34-label2
56-label3
78-label4
90-label5

4

7 に答える 7

2

以下は、より「意味的に」トリックを行います。

var parsed = text.Replace("-", " ");

Page Life Cycleサーバー コントロールで解析された値が表示されない理由に関して、(Web フォームの場合)値を変更するのが早すぎる可能性があります。

于 2012-10-30T14:56:35.753 に答える
2

あなたはただ使うことができますString.Replace

txtParse.Text = txtProbe.Text.Replace("-", " ");
于 2012-10-30T14:56:26.250 に答える
1

String.Join必要に応じて、文字列のコレクションを結合するために使用できます。あなたの場合:

txtParse.Text = String.Join(" ", words);
于 2012-10-30T14:56:42.837 に答える
1

あなたの特定のサンプルでは、​​ に置き換えるだけでよいよう'-'です' '

txtParse.Text = txtProbe.Text.Replace('-', ' ');

ただし、空白区切りを使用して文字列の配列を結合するには、これを使用できます

txtParse.Text = string.Join(" ", words);

あなたのロジックはあなたが達成しようとしているタスクには当てはまりませんが、学習目的のためだけに、あなたのスニペットの正しいバージョンを書きます

string separator = string.Empty; // starts empty so doesn't apply for first element
foreach (string s in words)
{
    txtParse.Text += separator + s; // You need to use += operator to append content
    separator = " "; // from second element will append " "
}

編集

これは、異なるラベルを使用する場合です。

Label[] labelList = new Label[] {label1, label2, label3, label4, label5};
for (int i = 0; i < words.Length; i++)
{ 
    labelList[i].Text = words[i];
}
于 2012-10-30T14:57:17.933 に答える
1

区切り文字を .split('-') で直接使用して、必要なデータを表す文字列の配列を返すことができます。

于 2012-10-30T14:57:31.697 に答える
1

あなたの問題はsTextプロパティに割り当て続けることです。s最終結果は、配列の最後になります。

代わりに使用できますTextBox.AppendText()

    char[] delemiterChars = { '-' };
    string text = txtProbe.Text;
    string[] words = text.Split(delemiterChars);
    txtParse.Text = text;
    foreach (string s in words)
    {
        txtParse.AppendText(s + " ");
    }
于 2012-10-30T14:58:50.147 に答える
0

あなたはちょうど置くことができますtxtParse.Text = txtProbe.Text.Replace('-', " ");

または、コードを変更して:

char[] delemiterChars = { '-' };
string text = txtProbe.Text;
string[] words = text.Split(delemiterChars,StringSplitOptions.RemoveEmptyEntries);
foreach (string s in words)
{
        txtParse.Text += " " + s;
}
于 2012-10-30T14:57:49.523 に答える