2011-07-19 206 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()的文档来查看返回值是什么。 (当然,这是一个微不足道的案例,但总的来说它是一个很好的实践) –