在带有子字符串的名称字符串上获取名字失败 [C#]
Getting first name on name string with substring fails [C#]
所以我有这段代码:
MessageBox.Show("Welcome," + name.Substring(0, nome.IndexOf(" ")) + "!");
假设名字是"Phiter Fernandes",好的,它会说:
欢迎您,菲特!
但是如果名称只是 "Phiter" 它将停止而不是 运行 其余代码。
很明显是因为substring方法没有space来检索名字。
但我不希望它跳过其余代码,我希望它即使没有 space.
也能正常工作
我试过使用 try catch,就像这样:
try
{
MessageBox.Show("Welcome," + name.Substring(0, nome.IndexOf(" ")) + "!");
}
catch
{
MessageBox.Show("Welcome," + name + "!");
}
它可以工作,但是当代码 运行 被捕获时会发出恼人的声音。
有没有其他办法解决这个问题?也许是另一种获取名字的方式?
尝试在有 space 的地方拆分字符串,并选择第一个元素,它始终是名字。
MessageBox.Show("Welcome," + name.Split(' ')[0] + "!");
您可以尝试多个选项。
替换使用正则表达式。
string input = "Your string " + "whitespace.";
string pattern = "\s+";
string replacement = " ";
Regex rgx = new Regex(pattern);
string result = rgx.Replace(input, replacement);
检查 space 是否存在。
if(name.Contains(" "))
MessageBox.Show("Welcome," + name.Substring(0, nome.IndexOf(" ")) + "!");
trim spaces
string fullName = name;
var names = fullName.Split(' ');
string firstName = names[0];
MessageBox.Show("Welcome," + firstName + "!");
告诉我你用的是哪一个!
所以我有这段代码:
MessageBox.Show("Welcome," + name.Substring(0, nome.IndexOf(" ")) + "!");
假设名字是"Phiter Fernandes",好的,它会说:
欢迎您,菲特!
但是如果名称只是 "Phiter" 它将停止而不是 运行 其余代码。 很明显是因为substring方法没有space来检索名字。
但我不希望它跳过其余代码,我希望它即使没有 space.
也能正常工作我试过使用 try catch,就像这样:
try
{
MessageBox.Show("Welcome," + name.Substring(0, nome.IndexOf(" ")) + "!");
}
catch
{
MessageBox.Show("Welcome," + name + "!");
}
它可以工作,但是当代码 运行 被捕获时会发出恼人的声音。 有没有其他办法解决这个问题?也许是另一种获取名字的方式?
尝试在有 space 的地方拆分字符串,并选择第一个元素,它始终是名字。
MessageBox.Show("Welcome," + name.Split(' ')[0] + "!");
您可以尝试多个选项。
替换使用正则表达式。
string input = "Your string " + "whitespace."; string pattern = "\s+"; string replacement = " "; Regex rgx = new Regex(pattern); string result = rgx.Replace(input, replacement);
检查 space 是否存在。
if(name.Contains(" ")) MessageBox.Show("Welcome," + name.Substring(0, nome.IndexOf(" ")) + "!");
trim spaces
string fullName = name; var names = fullName.Split(' '); string firstName = names[0]; MessageBox.Show("Welcome," + firstName + "!");
告诉我你用的是哪一个!