我有一个字符串,我想获得特定部分。
字符串将始终采用以下格式:
FirstName LastName,(位置)
我希望能够只获取字符串的LastName部分(在第一个空格之后和逗号之前)
字符串的LastName部分将始终不同,但FirstName可能是相同的
我将如何做到这一点
答案 0 :(得分:2)
如果字符串始终采用FirstName LastName,(Postion)格式,则可以使用String.Split
根据空格将字符串拆分为3个元素,并使用String.Replace
方法从中删除逗号姓氏:
string input = "John Doe, (Manager)";
string lastName = input.Split(' ')[1].Replace(",", "");
上面将字符串拆分为'',返回一个字符串数组(元素0是John,元素1是Doe,元素2是(Manager))。接下来选择第二个元素([1]),然后使用String.Replace
删除逗号。
输出应为“Doe”。
答案 1 :(得分:2)
更简单的方法:
var test = "FirstName LastName, (Position)";
var t = test.Split(new[] { ' ', ',' })[1];
答案 2 :(得分:0)
您可以将Substring用于此
int spaceIndex = str.IndexOf(' ');
string lastName = str.Substring(spaceIndex);
但这仅适用于所有名字长度相同的情况。为了更好的方式,您可以考虑使用Split方法:
string lastName = str.Split(' ')[1];
答案 3 :(得分:0)
基本上你不能安全地做到这一点。您可以使用String.Split方法将全名和位置分隔为字符串数组,使用逗号(,)作为分隔符,但是当分割名字和姓氏时,您看起来只能这样做通过使用空格作为分隔符,同时提出一些问题。如果有中间名,会发生什么?
实施例
string[] fullNameAndPosition = str.Split(',');
string position = fullNameAndPosition[1];
string[] fullName = fullNameAndPosition.Split(' ');
string fname = fullName[0];
string lname = fullName[1];