Java:使用" 08"和" 09"在数组中

时间:2014-04-22 05:33:19

标签: java arrays

如何将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

谢谢!

3 个答案:

答案 0 :(得分:12)

当您使用0启动文字整数时,它被视为八进制编号,使用基数8而非基数为10.但这意味着8并且9不是有效数字。

如果确实想要一个前导零(即八进制),则需要以下内容:

int[] monthValidDosInputs = {000, 001, ..., 007, 010, 011, 012, 013, 014};

它为您提供了小数012,但是以八进制。

但是,如果你想用十进制均匀地间隔它们,只需使用一个前导空格而不是零:

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};

并完成它。它对编译器没有任何影响。


如果您希望使用这些内容来检查用户输入(他们可能会在一个月内输入808),那么您可能会更好:

  • 使用字符串进行检查;或
  • 将其输入减少为整数(使用Integer.parseInt(str,10)之类的内容),以便044之间没有区别。

答案 1 :(得分:0)

dystroy是正确的,将它们存储为String[]数组中的字符串,然后在想要将它们用作整数时将它们解析为int

答案 2 :(得分:0)

我无法知道您可以在int []数组中保存这些值。 而是使用String []数组并在需要时转换为int值。