【发布时间】:2013-09-10 10:46:05
【问题描述】:
我正在研究一种方法,该方法接受一个字符串并将其分成多个项目,然后将其存储在一个数组中。然后,我执行检查以查看数组是否包含两个以上的项目,如果包含,我将数组中的特定项目分配给相应的字符串,即将第一项分配给名字,最后一项分配给姓氏,所有其他项目分配给中间名。
我的问题与检索数组中不是第一个或最后一个项目的每个项目有关,然后以正确的顺序将它们分配给一个字符串。下面你可以看到我试图抓取名称数组中的每个项目并将结果分配给一个列表,然后可以将其转换为单个字符串,但没有运气。我正在寻找的是解决这个问题的方法。
public string SplitName(string text)
{
string forename;
string middlename;
string surname;
var name = text.Split(' ');
if (name != null)
{
if (name.Length > 2)
{
forename = name[0];
surname = name[name.Length - 1];
List<string> temp = new List<string>();
for (int i = 1; i < name.Length - 1; i++)
{
// Assign each item to middlename
}
text = string.Format("{0} {1} {2}", forename, middlename, surname);
}
}
else
{
text = "INVALID";
}
return text;
}
【问题讨论】:
-
您有示例输入吗?怎么了?出错了?
-
我认为
text.Split()永远不会返回 null。如果text为null,则抛出异常,如果为空,则返回一个包含单个空项的数组。 -
@Magnus,我完全忽略了这一点,感谢您的提醒。
-
@Sayse 我收到了解决问题的多种方法的错误,因为我无法弄清楚如何实际解决问题,这就是我要求解决问题的原因。
标签: c# arrays string list loops