我怎么能分开,或者有其他方法吗
本文关键字:其他 方法 或者 能分开 | 更新日期: 2023-09-27 17:58:34
例如。
string str="A+B-D*E";
我想得到像那样的阵列
string[] list=new string{"A","+","B","-","D","*","E"};
所以我试着搜索。但这不好。
https://msdn.microsoft.com/en-us/library/system.string.split.aspx
更新:我不想要ToArray
或ToCharArray
。事实上,我的例子是错误的。我想要string[]
例如:
String sample = "AB+CD+EF";
String[] result = new[]{"AB","+","CB","+","EF"};
简单地将字符串转换为字符数组只不过是一个字符列表:
var result = input.ToArray();
或者更好的
result = input.ToCharArray();
其中string
-方法不仅仅是IEnumerable<char>
。
假设结果应该是string[]
string str = "A+B-D*E";
string[] result = str.Select(x => x.ToString()).ToArray();
如果输出类型也可以是char[]
,我推荐
char[] result = str.ToCharArray();
将其存储在字符数组中,而不是中
string s = "A+B-DE";
var chars = s.ToCharArray();
或
var chars = s.ToArray();
如果你想用多个字符分割,并且你想保留分隔符,你可以使用这个方法:
public static string[] Split(string input, bool keepDelimiters, params char[] delimiter)
{
if (input == null) throw new ArgumentNullException(nameof(input));
if (delimiter == null) throw new ArgumentNullException(nameof(delimiter));
if (input.Length <= 1) return new[] {input};
List<string> tokens = new List<string>();
int start = 0, index;
while ((index = input.IndexOfAny(delimiter, start)) > 0)
{
tokens.Add(input.Substring(start, index - start));
if (keepDelimiters)
tokens.Add(input[index].ToString());
start = index + 1;
}
if (start < input.Length)
tokens.Add(input.Substring(start));
return tokens.ToArray();
}
您的样品:
string[] result = Split("A+B-D*E", true, '+', '-', '*', '/');
foreach(string token in result)
Console.WriteLine(token);
结果:
A
+
B
-
D
*
E