2011-07-19 202 views
2

假設我有一個字符串分隔符,例如「〜#」,並有一個像「leftSide〜#righside」的字符串 如何在沒有分隔符的情況下獲得左側和右側的字符串?按字符串分隔多個字符的分隔符

string myLeft=?; 
string myRight=? 

你是怎麼做到的? 感謝

+1

你的意思是斯普利特(字符串[])overlooad? – Tigran

回答

7
string[] splitResults = myString.Split(new [] {"~#"}, StringSplitOptions.None); 

如果你想確保你得到最多2子(左,右),用途:

int maxResults = 2; 
string[] splitResults = 
    myString.Split(new [] {"~#"}, maxResults, StringSplitOptions.None) 
+1

不要忘記'StringSplitOptions'參數。沒有重載只需要一個'string []'。 – FishBasketGordo

+0

當然,編輯:) –

+0

感謝您的回覆很難選擇這麼多回復謝謝 – user9969

3

使用String.Split

string str = "leftSide~#righside"; 
str.Split(new [] {"~#"}, StringSplitOptions.None); 
+0

不要忘記'StringSplitOptions'參數。沒有重載只需要一個'string []'。 – FishBasketGordo

+0

糟糕,現在已修復,謝謝 –

5
string[] strs = 
    string.Split(new string[] { "~#" }, StringSplitOptions.RemoveEmptyEntries); 
0
String myLeft = value.Substring(0, value.IndexOf(seperator)); 
String myRight = value.Substring(value.IndexOf(seperator) + 1); 
2

分割功能具有接受字符串代替字符數組的過載...

string s = "leftSide~#righside"; 
string[] ss = s.Split(new string[] {"~#"}, StringSplitOptions.None); 
2
var s = "leftSide~#righside"; 
var split = s.Split (new string [] { "~#" }, StringSplitOptions.None); 

var myLeft = split [0]; 
var myRight = split [1]; 
+0

個人而言,我相信使用var使代碼更不可讀。如果你知道它將是一個字符串或字符串[],你應該指定它,以便維護你的代碼的人不必查找類似s.Split()的文檔來查看返回值是什麼。 (當然,這是一個微不足道的案例,但總的來說它是一個很好的實踐) –