你能告诉我如何分割字符串,例如:
string x="2+3-45.3+9"
到数组
['2','+','3','-','45.3','+','9']
在C#中?
答案 0 :(得分:2)
将字符串拆分为令牌很复杂,只需几行代码就无法实现。您需要构建一个Parser来实现此目的。有关该算法的更多详细信息,请参见此链接http://en.wikipedia.org/wiki/Recursive_descent_parser
我建议使用像ANTLR这样的库或像RPNParser这样的内置逻辑的库来执行解析并输出令牌
答案 1 :(得分:2)
与Regex:
string x="2+3-45.3+9";
string pattern = @"([+\-*/])";
var tokens = Regex.Split(x, pattern).Where(i => !string.IsNullOrEmpty(i)).ToList();
答案 2 :(得分:0)
您需要先定义要使用的分隔符。 那么你可以在字符串上做一个.Split(),你可以使用正则表达式,如果你熟悉它。
using System.Text.RegularExpressions;
foreach (Match m in Regex.Matches(string x, @"regex here"))
假设它很简单,尝试这样的事情
cha[]r tokenized;
foreach(char c in x)
{
if(c is number or decimal)
add to token
if(c is symbol)
inc tokenized index and add to tekenized arr
}