Wenn Sie eine wörtliche ganze Zahl mit 0
beginnen, ist es ein Oktal Zahl, eine, die Basis 10 8 eher als Basis verwendet gangen, dass 8
und 9
sind keine gültigen Ziffern bedeutet.
Wenn Sie wirklich wollen eine führende Null (das heißt, Oktal), Sie möchten, dass etwas brauchen:
int[] monthValidDosInputs = {000, 001, ..., 007, 010, 011, 012, 013, 014};
dem Sie die Dezimalzahlen 0
durch 12
, aber in Oktal gibt.
Wenn Sie jedoch wollen, dass sie halten gleichmäßig mit dezimal Abstand, nur einen führenden Platz anstelle von Null:
int[] monthValidDosInputs = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12};
// ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^
obwohl ich nicht sicher bin, Sie etwas von dem gewinnen. Sie können auch nur verwenden:
int[] monthValidDosInputs = {0,1,2,3,4,5,6,7,8,9,10,11,12};
und damit erledigt werden. Es macht keinen Unterschied für den Compiler.
Wenn Sie suchen, diese verwenden Benutzereingaben überprüfen (wo sie 8
oder 08
für einen Monat eingeben können), sind Sie besser dran entweder:
- Strings gegen prüfen ; oder
- reduziert ihre Eingabe auf eine ganze Zahl (mit etwas wie
Integer.parseInt(str,10)
), so dass es keinen Unterschied zwischen 04
und 4
gibt.
Sie möchten keine Zahlen, sondern Zeichenketten speichern. Verwenden Sie 'String []' und fügen Sie Anführungszeichen um Ihre Literale ein. –
Sie sagen, verwenden Sie Strings, um alle Werte zu speichern? 00-12? – ewbrowning
Das funktioniert ... aber gibt es eine Möglichkeit, 08 und 09 als Ints darzustellen? – ewbrowning