0

让我们从我有一个 txtProbe(textbox) 开始,我有 12-34-56-78-90。我想在不同的标签或文本框中解析它们......现在只在一个文本框中 - 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

你可以使用String.Replace

txtParse.Text = txtProbe.Text.Replace("-", " ");
于 2012-10-30T14:56:26.250 回答
2

以下将更“语义”地做到这一点:

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

Page Life Cycle关于为什么在服务器控件中看不到解析值的原因,您可能在(在 Web 窗体的情况下)更改值过早。

于 2012-10-30T14:56:35.753 回答
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

您的问题是您一直分配s给该Text属性。最终结果将是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 回答