This question already has answers here:
“Integer number too large” error message for 600851475143
(8个答案)
在8个月前关闭。
嗨,我在理解为什么这不起作用时遇到了麻烦
莫尔斯(Morse)只是一串数字。问题是它说Integer number太大:4545454545,但是我确定Long可以更长。
或者
根据JLS 3.10.1:
(8个答案)
在8个月前关闭。
嗨,我在理解为什么这不起作用时遇到了麻烦
if(Long.parseLong(morse) == 4545454545){
System.out.println("2");
}
莫尔斯(Morse)只是一串数字。问题是它说Integer number太大:4545454545,但是我确定Long可以更长。
最佳答案
您需要使用4545454545l
或4545454545L
将其限定为long
。默认情况下,4545454545
是int
文字,而4545454545
不在int
范围内。
建议使用大写字母L
以避免混淆,因为l
和1
看起来非常相似
你可以做 :
if(Long.valueOf(4545454545l).equals(Long.parseLong(morse)) ){
System.out.println("2");
}
或者
if(Long.parseLong(morse) == 4545454545l){
System.out.println("2");
}
根据JLS 3.10.1:
09-13 10:48