我想做一些非常轻松的事情
1 + 2 = 3
String var1 = "1";
String var2 = "2";
String var3 = var1 + var2;
问题:var3是12
答案 0 :(得分:1)
String var1 = "1";
String var2 = "2";
String var3 = String.valueOf(Integer.parseInt(var1) + Integer.parseInt(var2));
答案 1 :(得分:1)
您必须知道var1
和var2
是字符串,因此您必须将它们转换为数字类型,如int,以便您可以将它们添加到一起,因为当您添加到String时在一起你执行连接。
第一种方法是使用返回Integer.valueOf(String)
new Integer()
第二种方法是使用返回基元Integer.parseInt(String)
int
代码:
String var1 = "1";
String var2 = "2";
int var3 = Integer.parseInt(var1) + Integer.parseInt(var2);
System.out.println(var3);
使用eval
函数的额外信息:
public static void main(String[] args) throws ScriptException {
String var1 = "1";
String var2 = "2";
ScriptEngineManager manager = new ScriptEngineManager();
ScriptEngine engine = manager.getEngineByName("js");
Object result = engine.eval(var1.concat("+").concat(var2));
System.out.println(result.toString());
}
额外部分来源:Is there an eval() function in Java?
结果:
3
答案 2 :(得分:1)
之前的答案已经通过提供(在我看来次优的)代码来解决问题,但我希望提供更好的解释方法。
你想得到两个数字的总和(两位小数(1和2))。
String var1 = "1";
String var2 = "2";
String var3 = var1 + var2;
var3的值:12
。
这一行
String var3 = var1 + var2;
将编译为
String var3 = new StringBuilder(var1).append(var2).toString();
现在可能更加看好这段代码在做什么,它是连接(不添加包含的数字)两个String
s(“1”和“2”),产生结果“12”。 String
不是一个数字(它可以是“String
- 格式”,而不是一个现成的数字),不应该这样对待。
一个简单的解决方案是使用原始数据类型int
(整数,4个字节长)。
这样的事情:
int var1 = 1;
int var2 = 2;
int var3 = var1 + var2;
var3的值:3
。
在您的情况下,您正在创建一个计算器,并且,为了扩展我之前的观点,即使在那里您也应该避免使用String
来存储计算参数和结果,原因有多种:
每次使用时,您都必须将数字转换为字符串和字符串。
速度较慢。使用原始类型总是比使用它的包装类更快(例如:Integer
用于初始int
)或任何其他类。
很难阅读和维护。如果从键盘获取输入,则可能必须将给定输入解析为可以使用的基元。你可以在一开始就做到这一点,它会让你的生活更轻松。
此外,var1
,var2
和var3
是可怕的参数名称。在您的情况下,firstNumber
,secondNumber
和result
之类的内容会更合适。您应该始终小心地命名变量,并使它们具有自我解释性。
我强烈建议您阅读基本的Java教程,如下所示:http://docs.oracle.com/javase/tutorial/java/nutsandbolts/index.html。