好的,所以我尝试制作一个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;
并且有效,我不明白为什么它不适用于我的代码。我还没有见过计算器能使它变得如此简单,而且我不知道是否有可能这样做。谢谢您的帮助!
答案 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