我有一个字符串,如下:
string x="3*10^5";
我需要将它分成'*'和'^'字符,以便它的数组形式包含
"3", "10", "5"
所以我试过了:
string x="3*10^5";
List<string> arr;
foreach(char i in x){
if(x[i].ToString()=="*")/*IndexOutOfRange Exception */{
arr= ToStringList(x.Split('*'));
}
else if(x[i].ToString()=="^"){
arr=ToStringList(x.Split('^'));
}
}
我的功能:
List<string> ToStringList(string[] arr){
List<string> w;
foreach(string i in arr){
w.Add(i);
}
return w;
}
但是这段代码抛出了IndexOutOf Range Exception 如何使用“*”字符分割数组的一部分,用“^”字符分割另一部分?
答案 0 :(得分:3)
var arr = "3*10^5".Split("*^".ToCharArray());
答案 1 :(得分:2)
您是否尝试过使用Split
方法:
string x = "3*10^5";
string[] result = x.Split(new[] { '*', '^' });
答案 2 :(得分:1)
您可以使用string.Split将字符串拆分为您指定的一个或多个字符:
string x = "3*10^5";
var parts = x.Split('*', '^');
结果字符串数组包含:
答案 3 :(得分:1)
您可以使用string.Split
的重载版本:
var splitted = x.Split(new [] { "*", "^" }, StringSplitOptions.None);
答案 4 :(得分:1)
解决方案1:您可以使用String.Split()
方法使用多个分隔符执行拆分。
试试这个:
string x="3*10^5";
string [] split = x.Split(new Char[] { '*', '^' });
解决方案2:如果您有任何空字符串项,则需要将StringSplitOptions.RemoveEmptyEntries
作为第二个参数传递给String.Split()
函数,以忽略空项目上的拆分操作。
试试这个:
string x="3*10^5";
string [] split = x.Split(new Char[] { '*', '^' },StringSplitOptions.RemoveEmptyEntries);