我一直试图调查为什么Integer.parseInt()删除0并返回剩余的数字。例如:
@Test
public void testInteger() {
System.out.println(Integer.parseInt("01234"));
System.out.println(Integer.parseInt("12340"));
}
第一行打印1234,第二行打印12340.为什么从第一行删除0。这根本不符合逻辑。我知道Integer是int的包装对象,int存储32位。
你能解释一下原因吗?
答案 0 :(得分:1)
因为您使用字符串“01234”作为整数(parseInt()
),system.out.println
正在打印整数。
“01234”作为整数将是1234.这是因为0是唯一以零开头的整数。
这些都不是实数:
0456,
0234,
05555555,
01
如果您将“01234”存储为字符串,则0将保留其值。
答案 1 :(得分:0)
第一个表达式中的零,一旦转换为整数,就不重要了。
如果是,01
和001
之间会有什么区别?为什么转换应该以一个非重要0
作为正确的选择结束,甚至比具有两个重要零的那个更好?三个重要零点怎么样?根据这个逻辑,它会更加重要!!
不,我很抱歉,删除了不重要的数据,这就是为什么字符串'01234'
(当然是合法字符串)被转换为整数的原因1234
。
有关详细信息,请参阅here:
前导零从来都不重要。
答案 2 :(得分:0)
因为整数不以零开头,所以零在数字整数中没有重要性,那么当解析Integer.parseInt("01234")
时,从字符串到整数0将被删除1234
。
相反,最后归零的地方不会被删除12340
。