如何获得分裂角色?

时间:2011-04-09 13:37:10

标签: c#

我需要使用任何运算符(例如'+',' - ','*'或'/')来分割字符串。如何在拆分原始字符串时将其附加到另一个字符串?

例如:原始字符串为:Viewer.Amount + Payment - 100

          Output             : [Viewer.Amount] + [Payment] - 100;

我需要用[]包装单词,这就是我使用split的原因。我选择运算符作为拆分字符,我需要将它们附加到我的最终字符串。

请帮助。谢谢。

4 个答案:

答案 0 :(得分:1)

也许这有用。

string[] values = providedString.Split({'+', '-', '*' /*etc...*/});

string replaced;
string newString;
for(int i = 0; i < values.Length; i++)
{
    if(Int32.TryParse(value[i], out number))
         continue;

    replaced = "["+values[i]+"]";
    newString = providedString.Replace(values[i], replaced);
}

答案 1 :(得分:0)

目前还不清楚你要做什么,所以你可能想要考虑编辑你的问题并更具体。

但如果我不得不猜测,这将有助于您在评估中检索值。

string operation = "[26] + [200] - [100]";
List<string> values = new List<string>();

var items = operation.Split('[');

for (int i = 1; i < items.Length; i++)
{
    values.Add(items[i].Substring(0, items[i].IndexOf(']')));
}

foreach (var value in values)
{
    Console.WriteLine(value);
}

Console.ReadKey();

因此,使用上述内容,您将检索26,200和100。

答案 2 :(得分:0)

如果我是你,我不会使用拆分。相反,使用正则表达式替换或者只是滚动自己的。一个正则表达式:([A-Za-z\.]+)

答案 3 :(得分:0)

static string Magic(string str)
{
    Regex r = new Regex(@"([A-Za-z\.\d]+)");
    return r.Replace(str, "[$0]");            
}

输出:"[Viewer.Amount] + [Payment] - [100]"