web-dev-qa-db-fra.com

Méthode du scanner pour obtenir un caractère

Quelle est la méthode Scanner pour obtenir une char renvoyée par le clavier en Java. 

comme nextLine() pour String, nextInt() pour int, etc.

14
bizarrechaos

Pour obtenir un char à partir d'un Scanner, vous pouvez utiliser la méthode findInLine.

    Scanner sc = new Scanner("abc");
    char ch = sc.findInLine(".").charAt(0);
    System.out.println(ch); // prints "a"
    System.out.println(sc.next()); // prints "bc"

Si vous avez besoin d'un groupe de char d'une Scanner, il peut être plus pratique de modifier (peut-être temporairement) le délimiteur en chaîne vide. Cela fera que next() renvoie une chaîne de longueur 1 à chaque fois.

    Scanner sc = new Scanner("abc");
    sc.useDelimiter("");
    while (sc.hasNext()) {
        System.out.println(sc.next());
    } // prints "a", "b", "c"
20

Vous pouvez utiliser le Console API (apparu dans Java 6) comme suit:

Console cons = System.console();
if(cons != null) {
  char c = (char) cons.reader().read();  // Checking for EOF omitted
  ...
}

Si vous n'avez besoin que d'une seule ligne, vous n'avez même pas besoin de passer par l'objet lecteur:

String s = cons.readLine();
4
Itay Maman

La classe Scanner de Java n'a pas de méthode intégrée pour lire un Scanner caractère par caractère.

http://Java.Sun.com/javase/6/docs/api/Java/util/Scanner.html

Cependant, il devrait toujours être possible d'extraire des caractères individuels du scanner comme suit:

Scanner sc:

char c = sc.findInLine(".").charAt(0);

Et vous pouvez l’utiliser pour récupérer chaque caractère dans votre scanner comme ceci:

while(sc.hasNext()){
    char c = sc.findInLine(".").charAt(0);
    System.out.println(c); //to print out every char in the scanner
}

La méthode findInLine () effectue une recherche dans votre scanner et renvoie la première chaîne correspondant à l'expression régulière que vous lui avez donnée.

2
eipxen

sc.next (). charat (0) ......... est la méthode permettant de saisir un caractère par utilisateur en fonction du nombre entré lors de l'exécution

exemple: sc.next (). charat (2) ------------ >>>>>>>>

0
user3178887
Scanner sc = new Scanner (System.in)
char c = sc.next().trim().charAt(0);
0
Teena Sachdeva
Console cons = System.console();

La ligne de code ci-dessus crée par contre une référence null. Le code et la sortie sont donnés ci-dessous:

Console cons = System.console();
if (cons != null) {
    System.out.println("Enter single character: ");
    char c = (char) cons.reader().read();
    System.out.println(c);
}else{
    System.out.println(cons);
}

Sortie:

nul

Le code a été testé sur macbook pro avec la version Java "1.6.0_37".

0
Satish Singhal