C#无法将文本解析为整数?

时间:2019-03-20 16:14:30

标签: c#

好的,所以我尝试制作一个c#聊天程序,您可以与一个机器人聊天(它应该是Virtual Assistant程序。)。我正在制作一个计算器,但是它不起作用。这是我的代码:

reply(text.Split(' ')[1]);
int i = int.Parse(text.Split(' ')[1]);
reply(i.ToString());

reply是无效的,我在聊天时使用了一个列表框,reply将文本添加到列表框,例如“ Bot:-string-”。因此,reply(“ a”)会将“ Bot:a”添加到列表框中。 好的,所以在我写5 + 5时这是行不通的。而且我确定text.Split('')[1]是5 + 5。

我尝试过这样的事情:

int i = 5+5;

并且有效,我不明白为什么它不适用于我的代码。我还没有见过计算器能使它变得如此简单,而且我不知道是否有可能这样做。谢谢您的帮助!

3 个答案:

答案 0 :(得分:3)

它不起作用,int解析只能识别数字,不能识别符号。您可能想找出一种更好的方法。

但是,您可以使用以下表达式:

using System.Data;
DataTable dt = new DataTable();
var v = dt.Compute("3 * (2+4)","");

那是一个例子。希望它对您有用,当然,您只需要为字符串或变量更改字符串** 3 *(2 + 4)**。

答案 1 :(得分:1)

您可以使用DataTable.Compute技巧:

string text = "calculate 5+5";
int i = (int)new DataTable().Compute(text.Split(' ')[1], null);

答案 2 :(得分:0)

int无法解析字符串“ 5 + 5”。解析您需要实现某种形式的评估代码,也许这个问题可以帮助您Evaluating string "3*(4+2)" yield int 18