-3

我已经搜索了一段时间,但仍然没有找到任何东西。

我的问题是,我想简单地拆分一个值,一旦出现 1 就从文本框中传递。

string t1 = textBox1.Text;
string[] split = t1.Split(new Char[] {'1'});

我将写入变量中的值传递到另一个文本框。现在我的问题是,它不会显示 1 之后的内容,因为它应该在 split 方法中。相反,它显示 System.String[]。有人有帮助吗?

编辑:

我的程序的完整代码部分:

 {
                string t1 = textBox1.Text;
                string[] split = t1.Split(new Char[] { });
                textBox1.Text = split.ToString(); 
                if (split.Length == 2)
                    textBox4.Text = split[1];          


                url = "https://www.google.de/search?q=" + textBox3.Text + "&um=1&client=" + split[1] + "-a&rls=org.mozilla:de:official&hl=de&" + textBox2.Text + "=lnms&sa=X&ei=Re2YUd-RCYiC4gThw4GwAQ&ved=0CAkQ_AUoAA&biw=1920&bih=951

                textBox4.Text = url;
            }
4

1 回答 1

3

我认为您可能正在将结果分配给文本框,如下所示:

textBox2.Text = split.ToString();

ToString()会将string[] split数组转换为字符串,默认情况下只返回类型的名称,在这种情况下为System.String[].

为了让您能够使用它,split数组中应该至少有两个项目;即,文本框中所有由/字符分隔的子字符串。

我怀疑您想在/like 之后使用所有字符:

if (split.Length >= 2)
    textBox2.Text = split[1];

String.Split()将像这样工作:

如果您的输入文本是:"ABCD/EFGH",那么split将是:

split[0] == "ABCD";
split[1] == "EFGH";

如果您的输入文本是:"ABCDEFG",那么split将是:

split[0] == "ABCDEFG"; // There is no split[1]

如果您的输入文本是:"AB/CD/EF",那么split将是:

split[0] == "AB"
split[1] == "CD"
split[2] == "EF"

请注意,最后两种情况都有split.Length != 2.

对于最后一种情况,您想做什么,/输入中有两个(甚至更多)字符?


[编辑] 查看您上次的更新,这行代码是错误的:

textBox1.Text = split.ToString();

它应该是:

if (split.Length > 0)
    textBox1.Text = split[0];

阅读我上面答案的第一部分,了解什么是什么split.ToString()

此外,这一行是错误的:

string[] split = t1.Split(new Char[] { });

它应该是

string[] split = t1.Split(new [] {'/'});

您没有指定要拆分的字符。从您在此答案下方的评论中,我假设您实际上想要拆分'/'.

最后!您的行开头为:

url = "https: ...

使用split[1],因此您需要使用 if 来保护它:

if (split.Length > 1)
    url = "https: ...
else
    url = "<DIDN'T WORK!>"; // Or something! :)
于 2013-05-19T14:50:32.697 回答