c#编码使用字符串来查找全名
本文关键字:查找 全名 字符串 编码 | 更新日期: 2023-09-27 18:17:40
我正在使用Visual studio创建一个c# windows form
,它可以帮助我找到用户的后缀,姓和名。我使用string.split
找到第一个空间并从那里分割,但它只给我从第一个空间开始。如果用户输入"唐老鸭先生",我不能设法使它在这种情况下工作。
。-5个空格- Donald -5个空格- Duck"
代码不会读取超过第一个空格的内容。
有什么建议吗?
修剪只处理前后空白字符。当你的单词之间有多余的空格时,你需要这样做才能得到三个有用的部分:
string name = "Mr. Donald Duck";
string[] split = name.Split(" ".ToCharArray(), StringSplitOptions.RemoveEmptyEntries);
字符串数组将包含3项:Mr.
, Donald
, Duck
。当您分割原始字符串时,StringSplitOptions.RemoveEmptyEntries
将负责重复空白。
没有它,你得到的是这样的:Mr.
, <代码>代码>,<代码>代码>,<代码>代码>,<代码>> 代码>,<代码>代码>,<代码>代码>,<代码>> 代码>
您应该始终使用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,但希望这能有所帮助。
使用remove空字符串选项进行分割,那么您将得到非空单词数组作为结果。您可以从中获得名称部件。
演示字符串的语法。分割会像这样:
// 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,你可以很容易地删除空白从字符串的两端使用字符串。修剪方法。你可以在这里阅读。想了解更多,请访问这里
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];