如何检索String的某个部分

时间:2013-12-16 01:40:27

标签: c# string parsing space comma

我有一个字符串,我想获得特定部分。

字符串将始终采用以下格式:

FirstName LastName,(位置)

我希望能够只获取字符串的LastName部分(在第一个空格之后和逗号之前)

字符串的LastName部分将始终不同,但FirstName可能是相同的

我将如何做到这一点

4 个答案:

答案 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];