拆分只返回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;
}
我想你可能会像这样给文本框分配结果:
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! :)