有很長的字符串被分隔符分隔。分隔符可以改變,但有一些固定的設置。我想提取分隔符來執行分割操作。從長字符串獲取分隔符以分割
String sLongName = "abc1234646;dfsdfsdfsdf44654654;asdfsdsdf;sadfsdfs446";
該組分隔符是{";" "," "/" "$"}
。
所以,我怎樣才能在運行時哪一個是上面的設置中使用的字符串
有很長的字符串被分隔符分隔。分隔符可以改變,但有一些固定的設置。我想提取分隔符來執行分割操作。從長字符串獲取分隔符以分割
String sLongName = "abc1234646;dfsdfsdfsdf44654654;asdfsdsdf;sadfsdfs446";
該組分隔符是{";" "," "/" "$"}
。
所以,我怎樣才能在運行時哪一個是上面的設置中使用的字符串
你的意思是找到其中的分隔符的一個字符串中出現?
char[] delimiters = new char[] { ';', ',', '/', '$' };
char? usedDelimiter = delimiters.FirstOrDefault(d => sLongName.IndexOf(d) != -1);
假設該字符串包含分隔符的只是一個(或無),你可以用隨後又被分割:
string[] splitString;
if (usedDelimiter != null)
splitString = sLongName.Split(usedDelimiter.Value);
else
splitString = new string[] { sLongName };
您可以對所有的分隔符的分裂:
char[] delimiters = new char[] { ';',',','/','$' };
string[] parts = value.Split(delimiters, StringSplitOptions.RemoveEmptyEntries);
假設,分隔符永遠不會「正常」的文本內使用,你可以
Char[] dels = new Char [] {';', ',', '/', '$'};
Char del='\0';
foreach (Char c in dels)
if (sLongName.IndexOf(c)>=0)
{
del=c;
break;
}
if (del=='\0') throw new InvalidOperationException("I'm afraid, I can't do this, Chris!");
//del is now your delimiter.
你不能全部使用它們嗎? 'sLongName.Split(new string [] {「;」,「,」,「/」,「$」});' –
我可以,但是到目前爲止,這個列表如果增加的話會很小,它會對性能造成任何影響。 .. – ankur