[英]Can an integer always be parsed as a long?
我有一个Java中的字符串列表,正在写入文本文件。 这些字符串都标有一个类型 - 在这种情况下,我感兴趣的是包含long
s和int
的字符串。 我想在写这些字符串之前将它们转换回数字类型,但我想尽量减少代码重复。 我计划使用Long.parseLong()
解析标记为整数或长整数的每个字符串。
我的问题是:有没有任何情况下有效整数不会解析为长? 我想不出任何东西(除了可能是“1000L”或其他一些),但我在这些事情上的经验告诉我,我经常会有细微差别。
是的,整数总是可以转换成长整数,但是长整数总是被转换为整数。
int实际上是一个4字节的整数,long是8字节。 所以long给你一个int多4个字节。
Long.parseLong("1000L")
导致NumberFormatException - 它接受字符串编码的数值,不一定是Java数字文字(尽管有很大的重叠)。
因为Long.parseLong
完全包含Integer.parseInt
,因为int
的值是long
值的正确子集。
快乐的编码。
这应该没问题,因为整数是多头的子集。
每个可能的int
值都可以存储在long
或double
(或BigInteger)中
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.