java - 整数太大

标签 java

<分区>

嗨,我无法理解为什么这不起作用

if(Long.parseLong(morse) == 4545454545){
     System.out.println("2");
}

莫尔斯只是一串数字。问题是它说整数太大:4545454545,但我确信 Long 可以比这长得多。

最佳答案

您需要使用 4545454545l4545454545L 将其限定为 long。默认情况下,4545454545 是一个 int 字面值,而 4545454545 超出了 int 的范围。

建议使用大写字母 L 以避免混淆,因为 l1 看起来很相似

你可以这样做:

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 :

An integer literal is of type long if it is suffixed with an ASCII letter L or l (ell); otherwise it is of type int (§4.2.1).

关于java - 整数太大,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17632914/

相关文章:

java - 无法读取java中的文件

java - 事务提交后更新查询未刷新

java - 如何找到小于给定数的2的最大次方

java - H.323,如何在没有媒体的情况下制作简单的铃声。此脚本遵循 Q.931 设置但仍无法正常工作

java - 我可以持久保存的内存中 Java 数据库(作为单个巨大的内存块)

java - 在 Java 中 "invoke a constructor"和 "execute a constructor"有什么区别?

java - 如何基于用户代理等在 Spring MVC 中从数据库加载主题

java - 用 Java 编程 Hangman,主线程错误异常(以及其他)

java - 如何在glassfish服务器中配置oracle瘦连接池?

java - 从另一个 fragment 访问时静态 int 数组元素变为 0