你怎么能把一个字符串分成3个部分?

时间:2015-03-03 06:40:14

标签: c#

我有一个TextBox,用户可以在其中输入计算,例如键盘上的100+200

如何将字符串分成三部分,例如:

string mySum = "200+800"; //Just and example of what he may enter into the textbox
int Operator = mySum.IndexOf('+');
string TheOperator = "+";
string part1 = (mySum.Substring(1, Operator - 1));
mySum.Remove(int.Parse(part1), Operator);
string part2 = (mySum);

//Calculate

int Answer = int.Parse(part1) + TheOperator + int.Parse(part2);
Messagebox.Show(Asnwer.toString()); //Message box should display 1000

首先我知道这是错的,但我非常不确定如何做到这一点。我到处寻找,但我无法找到与此直接相关的任何内容

5 个答案:

答案 0 :(得分:2)

这样简单,使用分割功能

由char分割

string[] words = s.Split('+', StringSplitOptions.RemoveEmptyEntries);

当有多个char时,按char数组拆分

char[] delimiters = new char[] { '+', '*' };
    string[] parts = value.Split(delimiters,
                     StringSplitOptions.RemoveEmptyEntries);

您也可以使用像这样的正则表达式

string value = "cat\r\ndog\r\nanimal\r\nperson";
    // Split the string on line breaks.
    // ... The return value from Split is a string array 
   string[] lines = Regex.Split(value, "\r\n");

答案 1 :(得分:2)

您应该使用string.Split,如下所示:

// ...

var parts = mySum.Split('+');
var part1 = parts[0]; // 200
var operatorString = parts[1]; // +
var part2 = parts[2]; // 800

// ...

答案 2 :(得分:1)

如果你只想做一些简单的计算,试试这个

来自Evaluating string "3*(4+2)" yield int 18

using System.Data;

DataTable dt = new DataTable();
var v = dt.Compute("200+800","");

答案 3 :(得分:1)

拆分可以在这里工作。

using System;

public class Program
{
    public static void Main()
    {
        string mySum = "200+800";
        int totalSum = 0;
        foreach(var op in mySum.Split('+'))
        {
            totalSum += Convert.ToInt16(op);
        }
        Console.WriteLine(totalSum);
    }
}

here是小提琴。

答案 4 :(得分:1)

如果你只想计算,你可以这样做:

 var result = new System.Data.DataTable().Compute("200+800", null);
 Console.WriteLine(result);

希望帮助