如何分成两个不同的字符

时间:2014-01-25 14:10:43

标签: c# split

我有一个字符串,如下:

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 如何使用“*”字符分割数组的一部分,用“^”字符分割另一部分?

5 个答案:

答案 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
  • 10
  • 5

答案 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);