所以我有这段代码:
MessageBox.Show("Welcome," + name.Substring(0, nome.IndexOf(" ")) + "!");
让我们假设名字是" Phiter Fernandes",好吧它会说:
欢迎,Phiter!
但如果名字只是" Phiter"它会停止而不会运行剩下的代码。 显然是因为substring方法没有空格来检索名字。
但我不希望它跳过剩下的代码,我希望它即使没有空间也可以工作。
我尝试使用try catch,就像这样:
try
{
MessageBox.Show("Welcome," + name.Substring(0, nome.IndexOf(" ")) + "!");
}
catch
{
MessageBox.Show("Welcome," + name + "!");
}
它可以工作,但是当代码运行catch时会发出恼人的声音。 还有其他方法吗?获得名字的另一种方式可能是?
答案 0 :(得分:4)
尝试在有空格的地方拆分字符串,然后选择第一个元素,它始终是第一个名称。
MessageBox.Show("Welcome," + name.Split(' ')[0] + "!");
答案 1 :(得分:0)
您可以尝试多个选项。
替换使用正则表达式。
string input = "Your string " + "whitespace.";
string pattern = "\\s+";
string replacement = " ";
Regex rgx = new Regex(pattern);
string result = rgx.Replace(input, replacement);
检查是否存在空间。
if(name.Contains(" "))
MessageBox.Show("Welcome," + name.Substring(0, nome.IndexOf(" ")) + "!");
修剪空格
string fullName = name;
var names = fullName.Split(' ');
string firstName = names[0];
MessageBox.Show("Welcome," + firstName + "!");
让我知道您使用了哪一个!