【问题标题】:Trouble integer parsing two simple strings整数解析两个简单字符串的麻烦
【发布时间】:2014-03-05 00:58:31
【问题描述】:

我在解析 2 个字符串和连接包含的整数时遇到问题。我发现当要解析的整数长度超过 5 个字符时,单击按钮时程序/应用程序崩溃。

我能做些什么来解决这个问题? (使其适用于长度超过 5 个字符的整数)

代码:

public void SimpleButton (View V){
        int ab = 123456;
        int abc = 223456;

        int a = Integer.parseInt(Integer.toString(ab) + Integer.toString(abc));

            Toast.makeText(getBaseContext(), String.valueOf(a), Toast.LENGTH_LONG).show();
          }

【问题讨论】:

  • 使用可以容纳更大数字的类型。

标签: java android xml eclipse android-activity


【解决方案1】:

整数的MAX_VALUE2,147,483,647,但是当您连接String 值时,您得到的数字123,456,223,456 远大于整数的最大值。您必须使用Long

long a = Long.parseLong(Integer.toString(ab) + Integer.toString(abc));

【讨论】:

    【解决方案2】:

    当您将两个数字的 String 形式连接在一起时,您会得到一个 12 位数字,该数字太大而无法存储在 int 中。最大值约为 21 亿,一个 10 位数字。常量Integer.MAX_VALUE is the maximum possible int, 2147483647

    Long.parseLong 解析long,这可以处理更大的数字(或减少ab 和/或abc 中的位数)。常量Long.MAX_VALUE is the maximum possible long, 9223372036854775807L,19位。

    long a = Long.parseLong(Integer.toString(ab) + Integer.toString(abc));
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-03-20
      • 2012-11-05
      • 2014-10-29
      • 2020-09-16
      • 1970-01-01
      • 1970-01-01
      • 2012-03-19
      相关资源
      最近更新 更多