你好,我不明白为什么它不能正常工作。
if(Long.parseLong(morse) == 4545454545){
System.out.println("2");
}
在这里,morse只是一个数字字符串。问题在于它说:“整数太大:4545454545”,但我确信Long可以比那个更长。
你好,我不明白为什么它不能正常工作。
if(Long.parseLong(morse) == 4545454545){
System.out.println("2");
}
在这里,morse只是一个数字字符串。问题在于它说:“整数太大: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");
}
parseLong()
返回的是一个基本类型的 long,所以不需要使用 .equals()
- 使用 ==
就可以了。 - Michael Berryl
,请使用 L
。两者的意思相同,但前者可能会引起混淆,因为它看起来像是数字 1
。 - arshajii2147483647
,那么您需要使用长整型字面量:4545454545L
。请注意结尾处的 L
,这是长整型字面量和整型字面量之间的区别。小写的 l
也可以使用,但可读性较差,因为很容易与数字 1 混淆(当您处理数字时可能会出现问题)。您需要使用4545454545L
或4545454545l
将其标记为长整型。