2014-01-09 58 views

回答

5

您可以使用Substring()方法來獲取字符串的必要組成部分。

String text="acsbkjb/123kbvh/123jh/"; 
int index=text.IndexOf('/'); 
String text2=""; 

if(index>=0) 
text2=text.Substring(0,index); 
+0

OP沒有指定輸入字符串是否可以根本沒有轉發(在這種情況下,這將引發異常),但它是驗證輸入的正確解決方案。 – Groo

+0

@格羅:感謝您的評論,編輯我的答案。 –

3

GET子像

youstring.Substring(0,yourstring.IndexOf('/')); 
8

試試這個

string ss = myString.Split('/')[0]; 
+1

由於OP在第一個'/'之前要求提供文本,所以這不是一個好的答案。我知道你的代碼完成了這項工作,但與IndexOf方法相比,效率並不高。 –

+0

@PatrickHofman,沒有編輯和薩欽答案做正確的事情(也許不是在一個正確的方式)。考慮廣泛。如果OP的下一個問題是「以及如何在下一個反斜槓之前獲取文本」會怎麼樣?然後突然'IndexOf'變得不那麼高效。更多答案=更好。 – Sinatr

+0

@Sinatr:這是真的,但我想指出,這不是最有效的答案,尤其是因爲這個答案很高效。 –

3

了IEnumerable方法

string str = "acsbkjb/123kbvh/123jh/"; 
    var result = new string(str.TakeWhile(a => a != '/').ToArray()); 
    Console.WriteLine(result); 

如果沒有斜槓這個工作,而不需要檢查返回IndexOf

編輯保留此答案只是一個示例,因爲此方法的效率更糟糕。如果添加if語句來檢查返回值,IndexOf的工作速度也會更快。

+0

即使沒有正斜槓,它也能正常工作,但正如您所提到的,由於字符被複制兩次,所以它不是最有效的方式。 – Groo

+0

@格羅測試了一下,效率真的很差,我很想去掉答案。 – Steve

0
string text = "acsbkjb/123kbvh/123jh/";  
string text2 = text.Substring(0, text.IndexOf("/")); 
相關問題