2013-10-28 203 views
2

我需要從字符串的末尾獲取單詞。例如:字符串末尾的字符串的子串

string1 = "Hello : World"; 
string2 = "Hello : dear"; 
string3 = "We will meet : Animesh"; 

我要爲

string1 = "World" 
string2 = "dear" 
string3 = "Animesh" 

輸出我想要的:後的單詞。

+1

你檢查'string.Split'? – V4Vendetta

回答

11

各種方法:

var str = "Hello : World"; 
var result = str.Split(':')[1]; 
var result2 = str.Substring(str.IndexOf(":") + 1); 

Clicky clicky - Live sample

編輯:

在回答您的評論。對於不包含冒號字符的字符串,索引1將不可用。你必須首先要檢查:

var str = "Hello World"; 
var parts = str.Split(':'); 
var result = ""; 
if (parts.Length > 1) 
    result = parts[1]; 
else 
    result = parts[0]; 

Clicky clicky - Another live sample

+0

::當我使用它通常它工作正常。但是,當我在datagridview中使用它顯示一個錯誤。 「指數數組的邊界之外。」在第二行 –

+0

這是因爲您傳遞給它的字符串不包含冒號字符。要解決這個問題,你必須檢查長度..我會更新我的答案。 –

7

可以響應OPS的評論使用Split

string s = "We will meet : Animesh"; 
string[] x = s.Split(':'); 
string out = x[x.Length-1]; 
System.Console.Write(out); 

更新。

if (s.Contains(":")) 
{ 
    string[] x = s.Split(':'); 
    string out = x[x.Length-1]; 
    System.Console.Write(out); 
} 
else 
    System.Console.Write(": not found"); 
+0

當我通常使用它時,它工作正常。但是,當我在datagridview中使用它顯示一個錯誤。 「DataGridViewComboBoxCell {ColumnIndex = 0,RowIndex = 0}」。 –

+0

你所有的字符串是否都有冒號(':')字符?如果字符串沒有它,那麼會出現錯誤。讓我更新答案。另外如果你的字符串中沒有':'會怎麼樣? – unlimit

1

正則表達式是分析任何文本,並提取出所需要的一個好辦法:

Console.WriteLine (
    Regex.Match("Hello : World", @"[^\s]+", RegexOptions.RightToLeft).Groups[0].Value); 

這種方法將工作,不像其他反應即使沒有:

2

試試這個

string string1 = "Hello : World"; 
string string2 = "Hello : dear"; 
string string3 = "We will meet : Animesh"; 

string1 = string1.Substring(string1.LastIndexOf(":") + 1).Trim(); 
string2 = string2.Substring(string2.LastIndexOf(":") + 1).Trim(); 
string3 = string3.Substring(string3.LastIndexOf(":") + 1).Trim();