2012-11-30 88 views

回答

5

默認情況下,掃描器假定數字是以10爲底的數字,並且會忽略前導0。如果你願意,你可以指定另一個基數 - 下面的代碼打印448:

public static void main(String[] args) { 
    String a = "0700"; 
    Scanner s = new Scanner(a); 
    while (s.hasNextLong(8)) { //make sure the number can be parsed as an octal 
     System.out.print(s.nextLong(8)); //read as an octal value 
    } 
} 
+1

s.hasNextLong() - > s.hasNextLong(8) – hoaz

+0

@hoaz確實非常好。 – assylias

+0

不是真的,只是爲了一致性,它將工作,沒有基數太多,我認爲 – hoaz

0

閱讀documentation。它表示它將使用掃描儀的默認基數。如果默認值不可接受,則可以使用useRadix(int radix)方法對其進行更改,或使用nextLong(int radix)進行基數的臨時更改。

1

您可以使用Scanner#useRadix(radix)方法來設置默認基數,或者將基數明確地傳遞給Scanner#hasNextLong(radix)Scanner#nextLong(radix)方法。

相關問題