Java 安卓数学很简单

Java 安卓数学很简单,java,math,Java,Math,我想做一些非常简单的事情 1+2=3 问题是:var3是12您必须知道var1和var2是字符串,因此您必须将它们转换为int之类的数字类型,以便可以将它们添加在一起,因为当您将它们添加到字符串时,会执行串联 String var1 = "1"; String var2 = "2"; String var3 = String.valueOf(Integer.parseInt(var1) + Integer.parseInt(var2)); 第一种方法是使用返回新整数()的Integer.val

我想做一些非常简单的事情

1+2=3


问题是:var3是12

您必须知道
var1
var2
字符串,因此您必须将它们转换为int之类的数字类型,以便可以将它们添加在一起,因为当您将它们添加到字符串时,会执行串联

String var1 = "1";
String var2 = "2";
String var3 = String.valueOf(Integer.parseInt(var1) + Integer.parseInt(var2));
第一种方法是使用返回新整数()的
Integer.valueOf(String)

第二种方法是使用
Integer.parseInt(String)
返回原语
int

代码:

使用
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());
}
额外部分的来源:

结果:

 3 

前面的答案已经通过提供(在我看来是次优的)代码解决了这个问题,但我想提供一种更好的解释方法

您希望得到两个数字(两个小数(1和2))的和

var3的值:
12

这条线

String var3 = var1 + var2;
将被编译为

String var3 = new StringBuilder(var1).append(var2).toString();
现在,这段代码的作用可能更为明显,它将两个
String
s(“1”和“2”)串联在一起(添加包含的数字),从而得到结果“12”。
字符串
不是数字(可以是,但采用“
字符串
-格式”,而不是现成的数字),因此不应将其视为数字

一个简单的解决方案是使用原始数据类型
int
(整数,4字节长)

大概是这样的:

int var1 = 1;
int var2 = 2;
int var3 = var1 + var2;
var3的值:
3

在您的情况下,您正在创建一个计算器,为了扩展我前面的观点,即使在这里,您也应该避免使用
String
s来存储您的计算参数和结果,原因有多种:

  • 每次使用数字时,都必须将数字转换为字符串,将字符串转换为数字

  • 比较慢。使用原语类型比使用包装器类(例如:原语
    int
    Integer
    )或任何其他类都要快

  • 它很难阅读和维护。如果从键盘获取输入,可能需要将给定的输入解析为可以使用的原语。你可以在一开始就这样做,这会让你的生活更轻松

另外,
var1
var2
var3
都是可怕的参数名称。像
firstNumber
secondNumber
result
这样的东西在您的情况下更合适。您应该始终谨慎地命名变量,并使其具有自我解释性


我强烈建议您阅读基本Java教程,如下所示:

您正在添加字符串,这意味着您正在连接。如果你想做数学,那么把它们转换成整数。我怎么做?请帮助我,我会推荐任何像样的java教程。我们不是来教你基本编程的。用
int
而不是
String
。我看了很多教程和制作计算器的数学演示。答案是正确的,很明显OP没有经验,因此,我建议不要在没有清楚理解问题的情况下使用像
eval
这样的技术happening@Chubas非常感谢您的投入,但我只是想提供更多信息,向OP展示整个画面。我也没有经验,但通过看到其他答案,我可以寻找答案,获得更多经验,最终变得更好
String var3 = var1 + var2;
String var3 = new StringBuilder(var1).append(var2).toString();
int var1 = 1;
int var2 = 2;
int var3 = var1 + var2;