例如
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"};
答案 0 :(得分:4)
简单地转换为字符数组作为字符串只是一个字符列表:
var result = input.ToArray();
或更好
result = input.ToCharArray();
string
- 方法不仅仅是IEnumerable<char>
的扩展方法。
答案 1 :(得分:2)
假设结果应为convertfunc = lambda x: float(x.strip("%"))/100 # remove % and return the value in float (between 0 and 1)
TypeError: a bytes-like object is required, not 'str'
string[]
如果输出类型也可以是string str = "A+B-D*E";
string[] result = str.Select(x => x.ToString()).ToArray();
我建议
char[]
答案 2 :(得分:1)
将其存储在字符数组中
string s = "A+B-DE";
var chars = s.ToCharArray();
OR
var chars = s.ToArray();
答案 3 :(得分:0)
如果您想要分割多个字符并且想要保留分隔符,则可以使用此方法:
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