这是在c#中
我有 2 个用于名字和姓氏的文本框。我希望将一个名称字符串拆分为它所属的适当文本框,但问题是名称字符串可以是多种组合。它可以是“Mr John Smith”或“Mr Smith”,对于这些我得到的结果是好的,我现在遇到的问题是在拆分诸如“Mrs and Mrs Smith”之类的字符串时拆分不起作用计划为我在第一个文本框中得到“先生”,在第二个文本框中得到“和史密斯夫人”。
这是我下面的函数,任何人都可以提供帮助,因为如果字符串是“史密斯先生和夫人”或“先生和约翰史密斯夫人”
string name = "Mr and Mrs Smith";
string[] titles = new string[] {"Mr", "Miss", "Mrs", "Ms", "Master", "Mr and Mrs",
"Mr & Mrs", "Lady", "Lord", "Prof", "Proffessor", "Ma'am", "Madame"};
foreach (string title in titles)
{
if (name.StartsWith(title) && !name.Equals(title, StringComparison.CurrentCultureIgnoreCase))
{
var titleLength = title.Length;
var titlelessName = name.Substring(titleLength + 1);
var spaceIndex = titlelessName.IndexOf(' ');
if (spaceIndex > -1 && spaceIndex >= 0)
{
var firstName = titlelessName.Substring(0, spaceIndex);
var lastName = titlelessName.Substring(spaceIndex + 1);
txtFname.Text = firstName;
txtLname.Text = lastName;
}
}
else if (!name.StartsWith(title) && name.Contains(' '))
{
var firstName = name.Substring(0, name.IndexOf(' '));
var lastName = name.Substring(name.IndexOf(' '));
txtFname.Text = firstName;
txtLname.Text = lastName;
}
}