我正在使用Visual Studio创建一个C#windows form
,它帮助我查找用户的后缀,名和姓。我正在使用string.split
找到第一个空间并从那里分开,但它只能从第一个空间开始。如果用户输入“唐老鸭先生”,我无法使它在这种情况下工作。C#使用字符串进行编码以查找全名
“Mr. -5 spaces- Donald -5spaces- Duck”
代码不会读取第一个空格。
有什么建议吗?
我正在使用Visual Studio创建一个C#windows form
,它帮助我查找用户的后缀,名和姓。我正在使用string.split
找到第一个空间并从那里分开,但它只能从第一个空间开始。如果用户输入“唐老鸭先生”,我无法使它在这种情况下工作。C#使用字符串进行编码以查找全名
“Mr. -5 spaces- Donald -5spaces- Duck”
代码不会读取第一个空格。
有什么建议吗?
你应该总是使用String.Trim()函数。 (在字符串中处理用户输入时,要从字符串中删除前导和尾随空格)。
string s = " Mr. Donald duck ";
// Split string on spaces.
// ... This will separate all the words.
string[] words = s.Trim().Split(' ');
//.....check size of array.
if(words.Length ==3)
{
string suffix=words[0];
string firstname=words[1];
string lastname=words[2];
}
我没有得到-5在你的问题,但希望这会有所帮助。
拆分并删除空字符串选项,那么您将得到非空字数组作为结果。从那里你可以得到名字部分。
的语法String.Split会是这样的:
// 0 1 2
// ooo|oooooo|oooo
string str = "Mr. Donald Duck";
string suffix = str.Split(' ')[0];
string fname = str.Split(' ')[1];
string lname = str.Split(' ')[0];
只是为了解释 根据MSDN您可以轻松地通过使用字符串中删除从字符串两端的空格.Trim方法。你可以阅读它here。欲了解更多很好的了解,您可以访问here
string input = Console.ReadLine();
// This will remove white spaces from both ends and split on the basis of spaces in string.
string[] tokens = input.Trim().Split(' ');
string title = tokens[0];
string firstname = tokens[1];
string secondname = tokens[2];
Trimming只会采取的开头和结尾的空白字符护理。 Here's what you need为了当你有话之间的所有这些额外的空间来得到的只是文字的3个有用的部分:
string name = "Mr. Donald Duck";
string[] split = name.Split(" ".ToCharArray(), StringSplitOptions.RemoveEmptyEntries);
字符串数组包含3项:Mr.
,Donald
和Duck
。在分割原始字符串时,StringSplitOptions.RemoveEmptyEntries
将负责重复空格。
没有它,你会得到这样的事情:Mr.
,,
,
,
,
Donald
,,
,
,
,
Duck
谢谢大家,我用**哈萨克斯坦的组合* *和** Avneesh Srivastava **解决我的问题。如果我有任何其他问题,我一定会在这里查看, –