我正在尝试将名字拆分为名字,中间名和姓氏。为此,我需要拆分名称。我只在控制器中这样做。
这是我的代码:
var name = c1.Split(' ');
String fname = name[0];
String mname = null;
String lname = null;
if(name.Length == 2) //first and last names provided
{
fname = name[0];
lname = name[1];
}
if(name.Length > 2) //first item is the first name. last item is the last name. Everything else are middle names
{
fname = name[0];
mname = name.Substring(1, name.Length-2);
lname = name[name.Length-1];
}
但是在控制器中它说未定义子字符串。怎么办
答案 0 :(得分:0)
您要在数组上调用Substribg。改为在c1上调用它。
答案 1 :(得分:0)
您在数据收集而不是字符串上使用子字符串。 您的代码应类似于
fname.Substring(...)
或
name[0].substring
答案 2 :(得分:0)
您要获取数组的第一个元素为名字,最后一个为姓氏,并且第一个元素和最后一个元素之间的元素已加入作为中间名:
fname = name[0];
mname = string.Join(" ",name.Skip(1).Take(name.Length-2).ToArray());
lname = name[name.Length-1];
答案 3 :(得分:0)
子字符串可用于字符串 您用于数组
if(name.length)
{
fname = name[0];
mname = name[1].Substring(1, name[1].Length-2);
lname = name[name.Length-1];
}
答案 4 :(得分:0)
var pieces = c1.Split(' ');
if (pieces.Length == 2)
{
var firstname = pieces[0];
var lastname = pieces[1];
}
if (pieces.Length > 2)
{
var firstname = pieces[0];
var lastname = pieces[pieces.Length -1 ];
var middlename = string.Join(" ", pieces.Skip(1).Take(pieces.Length - 2));
}