我有一个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
首先我知道这是错的,但我非常不确定如何做到这一点。我到处寻找,但我无法找到与此直接相关的任何内容
答案 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);
希望帮助