【问题标题】:How to convert two strings to integers so math is correct?如何将两个字符串转换为整数以便数学正确?
【发布时间】:2010-11-08 07:16:14
【问题描述】:

我想要结果 no:5 但我得到 no:23

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

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

【问题讨论】:

标签: java string integer


【解决方案1】:

如果你想对整数进行算术运算,你需要告诉你的代码来解析这些值。目前它只是使用字符串连接运算符,因为两个操作数(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”而不是号码。

【讨论】:

  • @arya:是的,变量名无关紧要。
  • @arya:如果你一直使用它,它会与i 一起工作 - 但如果没有确切地看到你做了什么,很难说你做错了什么。
  • 我已经丢失了我所做的,因为我替换了它..无论如何非常感谢
【解决方案2】:

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";

    // `+` operation on Strings
    System.out.println("Concatenation:" + (str1+str2) );

    // `+` operation on integers
    System.out.println("Addition:" + (Integer.parseInt(str1)+Integer.parseInt(str2)) );
  }
}

【讨论】:

    【解决方案3】:
    【解决方案4】:

    您需要使用parseInt()。 “+”运算符在 Java 中用于连接两个字符串以及添加两个数字。因此,您必须将字符串转换为整数才能使用“+”运算符添加它们。

    编辑:

    如果您使用十进制数字,还有 parseFloat() 和 parseDouble()

    【讨论】:

      【解决方案5】:

      这个怎么样?

      class Assignment3 
      { 
        public static void main(String args[]) 
        { 
          String str1 = "2"; 
          String str2 = "3"; 
      
          System.out.println("Result:" + (Integer.parseInt(str1)+Integer.parseInt(str2)) ); 
        } 
      }
      

      【讨论】:

        【解决方案6】:

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

        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)) );
          }
        }
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-09-16
          • 2012-05-01
          • 2019-04-22
          • 2020-10-04
          • 2022-01-09
          相关资源
          最近更新 更多