如何将08和09存储到int数组中?我明白他们不能因二元特征而尝试过两者......
0b08,0b09 ......和... 0B08,0B09没有运气。
理想情况下,以下代码行是我想要的:
final int[] monthValidDosInputs = {00, 01, 02, 03, 04, 05, 06, 07, 08, 09, 10, 11, 12};
这是错误......
ConvertDate.java:15: error: integer number too large: 08
ConvertDate.java:15: error: integer number too large: 09
谢谢!
答案 0 :(得分:12)
当您使用0
启动文字整数时,它被视为八进制编号,使用基数8而非基数为10.但这意味着8
并且9
不是有效数字。
如果确实想要一个前导零(即八进制),则需要以下内容:
int[] monthValidDosInputs = {000, 001, ..., 007, 010, 011, 012, 013, 014};
它为您提供了小数0
到12
,但是以八进制。
但是,如果你想用十进制均匀地间隔它们,只需使用一个前导空格而不是零:
int[] monthValidDosInputs = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12};
// ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^
虽然我不确定你从中获得了什么。你也可以使用:
int[] monthValidDosInputs = {0,1,2,3,4,5,6,7,8,9,10,11,12};
并完成它。它对编译器没有任何影响。
如果您希望使用这些内容来检查用户输入(他们可能会在一个月内输入8
或08
),那么您可能会更好:
Integer.parseInt(str,10)
之类的内容),以便04
和4
之间没有区别。答案 1 :(得分:0)
dystroy是正确的,将它们存储为String[]
数组中的字符串,然后在想要将它们用作整数时将它们解析为int
。
答案 2 :(得分:0)
我无法知道您可以在int []数组中保存这些值。 而是使用String []数组并在需要时转换为int值。