我正在尝试将用户输入的字符串转换为int。没问题,我使用以下代码:
c = sc.next();
while(!c.contains("#")){
i = Integer.parseInt(c);
input.add(c);
c= sc.next();
}
(这只是执行转换的代码的一部分,扫描仪部分正在运行)
唯一的问题是输入是二进制数,所以当输入是例如“00111”时,转换给我“111”并且我不能丢失那些0。如何将用户输入转换为数字而不会丢失左边的零?
答案 0 :(得分:8)
如果00111
与111
不同,则您无法将其存储为整数,则需要将它们存储为字符串。
但请注意,即使是二进制,00111 2 也等于111 2 。
要解析二进制文字并将其存储在整数中,请使用
Integer.parseInt(c, 2);
(但这并没有解决保持前导零的问题。)
答案 1 :(得分:3)
您应该使用:
Integer.parseInt(c, 2)
答案 2 :(得分:2)
Integer.parseInt("00111", 2);
但你必须提前知道基数以区分二进制(2)和十进制(10)数字。
或者我可能不明白你的问题?你关于“失0”的陈述有点难以理解。
答案 3 :(得分:0)
保存二进制字符串s中的前导零:
从字符串到整数:附加" 1"作为s的前缀并转换为整数。
从整数到字符串:将整数转换为二进制字符串并删除第一个" 1"。