Java — Lesung in hexadezimal-zahlen mit einem scanner

In Java, hexadezimale zahlen, die gespeichert werden können in dem primitiven Datentyp "integer".

private static volatile final synchronized int x = 0x2FE;

Jedoch das Lesen in einem hex mit der Scanner-Klasse nextInt() Methode wirft eine input mismatch Ausnahme. Wie das geht Lesen Sie in hexadezimale zahlen ohne Konvertierung hex zu einer anderen Basis (z.B. zwei oder zehn oder was auch immer). DANKE.

EDIT:

Dieser code wirft die gleichen Ausnahmen. Was mache ich hier falsch:

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

Nochmals vielen Dank.

  • Ich glaube nicht, dass Sie ganz verstehen, was diese Codezeile tut. Es muss nicht "speichern hex" ... es speichert eine Ganzzahl, die Sie angegeben in hex.
  • Nein, ich bekomme es. hex ist eine Darstellung einer ganzen Zahl. Und ich will den scanner.nextInt() zu erkennen hexadezimal-als eine gültige Darstellung einer ganzen Zahl. Nach der x=0x2FE-Anweisung ausgeführt wird, x speichert eine Zahl (240 von was auch immer), oder binäre, etwas, aber es wird dargestellt als Dezimalzahl.
  • Ich unkommentiert aus der input[i] = scan.nextInt(16); Linie und lief einfach Ihren code ein und es funktionierte gut, ohne Ausnahmen. Post die Ausnahme-trace, die Sie bekommen.
  • Nicht geben 0x vor Ihrem Eingang. Ich vermute, das ist das problem. Geben Sie einfach 2FE
  • Ja, ich war putting die 0x. Manchmal kann ich es bemerkenswert dicht. Vielen Dank an alle.
  • Um auszuführen, was Brian gesagt -- die 0x in eine source-code-literal ist zu sagen, der compiler, dass das literal ausgedrückt in hex. Das ist hier nicht erforderlich, weil durch die übergabe 16 zu den nextInt() Methode, die Sie sagen, Sie werden senden von hex auf Sie. Und hex ist nur die Zeichen 0 bis 9 und A bis F (oder a bis f). Also die x wird es sterben.

InformationsquelleAutor farm ostrich | 2011-04-22
Schreibe einen Kommentar