在Java中,十六進制數字可以存儲在基本整數類型中。Java - 使用掃描儀以十六進制數字讀取
private static volatile final synchronized int x = 0x2FE;
然而,在使用掃描器類的nextInt()
方法六角讀取拋出輸入匹配異常。如何去讀取十六進制數字而不將十六進制轉換爲另一個基數(例如兩個或十個或其他)。謝謝。
編輯:
此代碼拋出相同的例外。我在這裏做錯了什麼:
import java.util.Scanner;
public class NewClass {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
//scan.useRadix(16);
int[] input = new int[10];
for (int i = 0; i < 10; i++) {
//input[i] = scan.nextInt(16);
System.out.println(input[i]);
}
}
}
再次感謝。
我不認爲你很明白什麼該行代碼一樣。它不會「存儲十六進制」...它存儲了一個int,您在十六進制中指定。 – 2011-04-22 00:40:25
不,我明白了。十六進制是一個整數的表示。我希望scanner.nextInt()將十六進制識別爲整數的有效表示形式。在執行x = 0x2FE語句後,x將存儲一個十進制數(其中的240)或二進制數,但它將顯示爲十進制數。 – 2011-04-22 00:43:33
我取消了'input [i] = scan.nextInt(16);'行的註釋並且只運行了你的代碼,它運行良好,沒有例外。發佈你得到的異常追蹤。 – QuantumMechanic 2011-04-22 00:57:45