拆分只返回System.字符串[]代替实际值

本文关键字:返回 System 字符串 拆分 | 更新日期: 2023-09-27 18:14:22

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

我的问题是,我想简单地分割一个值,从一个文本框交付

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;
            }

拆分只返回System.字符串[]代替实际值

我想你可能会像这样给文本框分配结果:

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

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


[EDIT]查看您的最后一次更新,这行代码是错误的:

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