2013-12-16 28 views
-1

我有一個字符串,我想要獲取特定部分。如何檢索字符串的某個部分

字符串始終處於格式:

名姓,(位置)

我希望能夠得到公正的字符串姓氏部分(第一空間後和前逗號)

字符串的姓氏部分將永遠是不同的,但名字可以是相同的

如何將我去這樣做

+0

我編輯了自己的冠軍。請參閱:「[應該在其標題中包含」標籤「](http://meta.stackexchange.com/questions/19190/)」,其中的共識是「不,他們不應該」。 –

+0

好的不用擔心,這個問題已經回答了,雖然 – NattyMan0007

回答

2

如果字符串是總是在格式名姓,(當前位置),則可以使用String.Split基於空間分割字符串轉換成3個元素,並且String.Replace方法以除去逗號從名字:

string input = "John Doe, (Manager)"; 

string lastName = input.Split(' ')[1].Replace(",", ""); 

上述分割字符串上「」,返回字符串的數組(元素0是約翰,元件1是DOE,和元件2(經理))。接下來選擇第二個元素([1]),然後使用String.Replace刪除逗號。

輸出應該是「Doe」。

+0

非常感謝Tim的工作。 – NattyMan0007

+0

不客氣。只要記住,如果字符串格式不正確,就會遇到問題。快樂編碼:) – Tim

0

您可以使用Substring這個

int spaceIndex = str.IndexOf(' '); 
string lastName = str.Substring(spaceIndex); 

但這僅僅在進行所有firstnames具有相同length.for更好的辦法,你可以考慮使用Split方法:

string lastName = str.Split(' ')[1]; 
+0

第一種方法不會滿足OP的要求,因爲它會導致「姓氏,(位置)」。第二種方法比較接近,但最後還是會有','。 – Tim

0

嗯,基本上你不能做安全。您可以使用String.Split方法使用逗號(,)作爲分隔符將全名和位置分隔到一個字符串數組中,但是當涉及到拆分名和姓時,它看起來像只能通過使用空格作爲分隔符,同時提出了一些問題。如果有中間名會發生什麼?

實例

string[] fullNameAndPosition = str.Split(','); 
string position = fullNameAndPosition[1]; 
string[] fullName = fullNameAndPosition.Split(' '); 
string fname = fullName[0]; 
string lname = fullName[1]; 
2

更簡單的方法:

var test = "FirstName LastName, (Position)"; 
var t = test.Split(new[] { ' ', ',' })[1]; 
相關問題