拆分仅返回System.String []而不是实际值

时间:2013-05-19 14:34:22

标签: c# split

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

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

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

我将我的变量中写入的值传递到另一个Textbox中。 现在我的问题是,它不会显示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;
            }

1 个答案:

答案 0 :(得分:3)

我认为您可能会将结果分配到文本框中,如下所示:

textBox2.Text = split.ToString();

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

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

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

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! :)