Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何转换字符串";7/7“;到整数1?_Java - Fatal编程技术网

Java 如何转换字符串";7/7“;到整数1?

Java 如何转换字符串";7/7“;到整数1?,java,Java,我正试图用Java制作一个计算器GUI,但是我不知道如何将“7/7”转换为双精度 我试着把它直接转换成双精度的,但是我无法让它工作 私有类处理程序实现ActionListener{ 字符串应答字符串=”; 内部应答; 已执行的公共无效操作(操作事件e){ 如果(如getSource()==清除){ 回答字符串=”; result.setText(应答字符串); } 如果(例如getSource()==openBracket){ answerString=answerString+“(”; res

我正试图用Java制作一个计算器GUI,但是我不知道如何将“7/7”转换为双精度

我试着把它直接转换成双精度的,但是我无法让它工作

私有类处理程序实现ActionListener{
字符串应答字符串=”;
内部应答;
已执行的公共无效操作(操作事件e){
如果(如getSource()==清除){
回答字符串=”;
result.setText(应答字符串);
}
如果(例如getSource()==openBracket){
answerString=answerString+“(”;
result.setText(应答字符串);
}
如果(如getSource()==closeBracket){
answerString=answerString+”;
result.setText(应答字符串);
}
如果(如getSource()==除法){
answerString=answerString+“/”;
result.setText(应答字符串);
}
如果(例如getSource()==seven){
answerString=answerString+“7”;
result.setText(应答字符串);
}
如果(如getSource()==相等){
answerDouble=Integer.parseInt(answerString);
answerString=Double.toString(answerDouble);
result.setText(应答字符串);
}
}
}

它应该为7/7显示1,但会在命令行上输出一个错误。

您可以使用JavaScript
ScriptEngine
对这些表达式求值:

String expression = "7/7";
ScriptEngine scriptEngine = new ScriptEngineManager().getEngineByName("JavaScript");
System.out.println(scriptEngine.eval(expression)); // you will have to handle ScriptException
输出:

1

您可以使用JavaScript
ScriptEngine
计算这些表达式:

String expression = "7/7";
ScriptEngine scriptEngine = new ScriptEngineManager().getEngineByName("JavaScript");
System.out.println(scriptEngine.eval(expression)); // you will have to handle ScriptException
输出:

1

Integer.parseInt不计算表达式的值。您可以始终使用javascript引擎执行它。Integer.parseInt不计算表达式的值。您可以始终使用javascript引擎执行它。我认为这是一个很大的信心飞跃,因为OP要求基于Java的解决方案。@这就是Java。我理解,但它也回避了原始问题-原始问题是OP没有处理需要处理的操作符号这一事实,因此尽管这是一个有效的解决方案,它隐藏了这样一个事实,即javascript引擎正在处理除法/乘法等,其方式类似于OP最初开始尝试解决它的方式。主要的问题是,这是一个“可爱”的解决方案,但没有向OP解释什么是不正确的。我不确定我是否理解你的观点。OP需要计算一个数学表达式,这是一个简单有效的解决方案。谁在乎底层引擎隐藏了它在做什么呢。用Java编写干净代码的99%都隐藏了杂乱无章和不必要的细节,因此开发人员可以专注于编写业务逻辑,而不是重新发明轮子。我知道已经有一段时间了,但谢谢您,先生。很抱歉回复得太晚,我当时对堆栈溢出非常陌生。我认为这是一个很大的信心飞跃,因为OP要求基于Java的解决方案,即Java。我理解,但它也回避了原始问题-原始问题是OP没有处理需要处理的操作符号这一事实,因此,虽然这是一个有效的解决方案,但它隐藏了一个事实,即javascript引擎正在以类似于OP最初尝试解决它的方式处理除法/乘法/等。主要的问题是,这是一个“可爱”的解决方案,但没有向OP解释什么是不正确的。我不确定我是否理解你的观点。OP需要计算一个数学表达式,这是一个简单有效的解决方案。谁在乎底层引擎隐藏了它在做什么呢。用Java编写干净代码的99%都隐藏了杂乱无章和不必要的细节,因此开发人员可以专注于编写业务逻辑,而不是重新发明轮子。我知道已经有一段时间了,但谢谢您,先生。很抱歉,回复太晚了,我那时还不熟悉堆栈溢出。