我有一个名为FULLNAME的专栏,它由一个由空格分隔的FIRSTNAME和姓氏的变体组成,标题FIRSTNAME和姓氏都由一个空格隔开。例如,我可以请约翰·史密斯或约翰·史密斯博士。
我正在使用C#在视觉工作室。
我按如下所示循环遍历其中的每一个:
foreach (DataRow dr in spreadsheetdata.Tables["EPABase"].Rows)我的标题数组如下:
title[0] = "Mr";
title[1] = "Mrs";
title[2] = "Miss";
title[3] = "Ms";
title[4] = "Dr";
title[5] = "Rev";
title[6] = "Hon";
title[7] = "Mx";
title[8] = "Other";我工作的方式并不重要,但是先得到姓氏可能更容易,因为它总是字符串中的最后一组字符,直到右边的第一个空格值。如果我把这个输入到它自己的姓氏字符串中,然后从原始的FULLNAME字符串中删除它,那么我可以使用我的数组来查看从左到第一个空格的第一组字符是否出现在其中,如果是这样,则用作标题字符串,但如果不是,则在删除姓氏后使用剩下的字符串为FIRSTNAME字符串。
关于如何实现这一目标的第一步,就是把姓拿出来,这一点有点卡住了。我尝试过LASTINDEXOF,但这是一个整数值,我需要字符串。
发布于 2019-11-21 12:01:30
如果您确信“名”或“姓”中没有空格,请尝试如下所示:
string[] fullNames = { "John Smith", "Dr John Smith" };
string[] titles = { "Mr", "Mrs", "Dr" };
foreach (var item in fullNames)
{
var details = item.Split(' ');
if (titles.Contains(details[0]))
{
Console.WriteLine($"Title: { details[0]} ");
Console.WriteLine($"First Name: { details[1]} ");
Console.WriteLine($"Last Name: { details[2]} ");
}
else
{
Console.WriteLine($"First Name: { details[0]} ");
Console.WriteLine($"Last Name: { details[1]} ");
}
}发布于 2019-11-21 12:15:43
为了得到姓氏,你可以做以下事情:
foreach (DataRow dr in spreadsheetdata.Tables["EPABase"].Rows)
{
var value = dr["FULLNAME"].ToString();
var elementsOfName = value.Split(" ");
var lastName = elementsOfName[elementsOfName.Length - 1];
Console.WriteLine(lastName);
}https://stackoverflow.com/questions/58974194
复制相似问题