使用c#

时间:2016-08-10 18:05:25

标签: c#

我有一个字符串,如下所示

"/calc 2 3 +"

如何以这样的方式分裂

str1="/calc"
str2= "2 3 +"

c#中是否有任何方法进行特殊字符拆分? 谢谢!

6 个答案:

答案 0 :(得分:5)

如果它只是那个字符串并且总是像你拥有它一样分裂,那么你可以这样做:

var x = @"/calc 2 3 +";
var str1 = x.Substring(0, 5);
var str2 = x.Substring(6);

否则,不,没有特别之处,因为你没有唯一的分隔符。

答案 1 :(得分:2)

使用IndexOf方法查找第一个出现的空格字符。然后使用Substring方法将字符串拆分为2。

答案 2 :(得分:1)

string strInput = @"/calc 2 3 +";

var list = strInput.Split(' ').ToList();

str1 = list[0];
str2 = String.Join(" ",list.RemoveAt(0));

答案 3 :(得分:1)

我很惊讶没有人提供最明显的答案 - 使用string.Split重载中的一个允许您指定要返回的最大子串数:

string input = "/calc 2 3 +";
var result = input.Split(new[] { ' ' }, 2);
Debug.Assert(result.Length == 2 && result[0] == "/calc" && result[1] == "2 3 +");

答案 4 :(得分:0)

有很多方法可以做到这一点。最简单的方法是使用第一个空格的索引。

var mystr = @"/calc 2 3 +";
int index= mystr.IndexOf(' ');
var str1 = mystr.Substring(0, index);
var str2 = mystr.Substring(index+1);

如果文本中有任何模式,您也可以使用RegEx

答案 5 :(得分:0)

string a = "/calc 2 3 +";
string[] array = a.Split(' ');

str1= array[0];
str2= string.Format("{0} {1} {2}", array[1], array[2], array[3]);