c#编码使用字符串来查找全名

本文关键字:查找 全名 字符串 编码 | 更新日期: 2023-09-27 18:17:40

我正在使用Visual studio创建一个c# windows form,它可以帮助我找到用户的后缀,姓和名。我使用string.split找到第一个空间并从那里分割,但它只给我从第一个空间开始。如果用户输入"唐老鸭先生",我不能设法使它在这种情况下工作。

。-5个空格- Donald -5个空格- Duck"
代码不会读取超过第一个空格的内容。
有什么建议吗?

c#编码使用字符串来查找全名

修剪只处理前后空白字符。当你的单词之间有多余的空格时,你需要这样做才能得到三个有用的部分:

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];