我遇到整数解析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();
}
答案 0 :(得分:1)
MAX_VALUE
整数是2,147,483,647
但是当你连接String
值时,你得到的数字123,456,223,456
远大于整数的最大值。您必须使用Long
。
long a = Long.parseLong(Integer.toString(ab) + Integer.toString(abc));
答案 1 :(得分:0)
当您将两个数字的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));