Java 如何将两个字符串转换为整数,使数学正确?

Java 如何将两个字符串转换为整数,使数学正确?,java,string,integer,Java,String,Integer,我想要5分的结果,但我得到23分 public class Assignment3 { public static void main(String args[]) { String str1 = "2"; String str2 = "3"; System.out.println("Result:" + (str1+str2) ); } } 你需要使用。“+”运算符在Java中用于连接两个字符串以及添加两个数字。因此,您必须将字符串转换为整数,才能使用“+”

我想要5分的结果,但我得到23分

public class Assignment3
{
  public static void main(String args[])
  {
    String str1 = "2";
    String str2 = "3";

  System.out.println("Result:" + (str1+str2) );
  }
}
你需要使用。“+”运算符在Java中用于连接两个字符串以及添加两个数字。因此,您必须将字符串转换为整数,才能使用“+”运算符添加它们

编辑:

还有,如果您使用的是十进制数,那么这个呢

class Assignment3 
{ 
  public static void main(String args[]) 
  { 
    String str1 = "2"; 
    String str2 = "3"; 

    System.out.println("Result:" + (Integer.parseInt(str1)+Integer.parseInt(str2)) ); 
  } 
}

如果希望对整数进行算术运算,则需要告诉代码解析这些值。目前它只使用字符串连接运算符,因为两个操作数(
str1
str2
)都是字符串表达式

试试这个:

public class Assignment3
{
  public static void main(String args[])
  {
    String str1 = "2";
    String str2 = "3";

    int num1 = Integer.parseInt(str1);
    int num2 = Integer.parseInt(str2);

    System.out.println("Result:" + (num1 + num2) );
  }
}

请注意,当您使用“实”数据(而不是硬编码的值,这在这里肯定是有效的)时,
Integer.parseInt
将抛出一个
NumberFormatException
,如果您给它类似于“x”的值而不是数字。

str1
str2
String
对象。
+
操作是为
String
对象定义的,其工作方式类似于这些字符串的串联:

"one" + "two" -> "onetwo"
"1" + "2" -> "12"
如果需要算术
+
运算,则需要数字类型(int、float等)。在这种情况下,必须将字符串解析为数值,如:

String str1 = "2";
int int1 = Integer.parseInt(str1);  // int1 is now 2


您将数字字符串视为文本字符串,但实际上需要将字符串解析为整数

public class Assignment3
{
  public static void main(String args[])
  {
    String str1 = "2";
    String str2 = "3";

  System.out.println("Result:" + (Integer.parseInt(str1)+Integer.parseInt(str2)) );
  }
}

@arya:是的,变量名无关紧要。@arya:如果你一直使用它,
i
,它会起作用的-但是如果你没有看到你到底做了什么,很难说你做错了什么。我已经失去了我所做的,因为我替换了它。无论如何,非常感谢:
public class Assignment3
{
  public static void main(String args[])
  {
    String str1 = "2";
    String str2 = "3";

  System.out.println("Result:" + (Integer.parseInt(str1)+Integer.parseInt(str2)) );
  }
}