J'obtiens une sortie étrange lors de l'exécution de code (apparemment simple). Voici ce que j'ai:
import Java.util.Scanner;
public class TestApplication {
public static void main(String[] args) {
System.out.println("Enter a password: ");
Scanner input = new Scanner(System.in);
input.next();
String s = input.toString();
System.out.println(s);
}
}
Et la sortie que j'obtiens après avoir compilé avec succès est:
Enter a password:
hello
Java.util.Scanner[delimiters=\p{javaWhitespace}+][position=5][match valid=true][need input=false][source closed=false][skipped=false][group separator=\,][decimal separator=\.][positive prefix=][negative prefix=\Q-\E][positive suffix=][negative suffix=][NaN string=\Q�\E][infinity string=\Q∞\E]
Ce qui est un peu bizarre. Que se passe-t-il et comment imprimer la valeur de s
?
Vous obtenez la valeur toString()
retournée par l'objet Scanner lui-même, ce qui n'est pas ce que vous voulez et pas la façon dont vous utilisez un objet Scanner. Ce que vous voulez à la place, ce sont les données obtenues par l'objet Scanner. Par exemple,
Scanner input = new Scanner(System.in);
String data = input.nextLine();
System.out.println(data);
Veuillez lire le tutoriel sur la façon de l'utiliser car il vous expliquera tout.
Modifier
Veuillez regarder ici: Tutoriel scanner
Jetez également un œil à Scanner API qui expliquera certains des points les plus fins des méthodes et propriétés de Scanner.
Vous pouvez également utiliser BufferedReader :
import Java.io.*;
public class TestApplication {
public static void main (String[] args) {
System.out.print("Enter a password: ");
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String password = null;
try {
password = br.readLine();
} catch (IOException e) {
System.out.println("IO error trying to read your password!");
System.exit(1);
}
System.out.println("Successfully read your password.");
}
}
input.next();
String s = input.toString();
le changer en
String s = input.next();
C'est peut-être ce que vous essayez de faire.
Cela est plus susceptible de vous procurer ce que vous voulez:
Scanner input = new Scanner(System.in);
String s = input.next();
System.out.println(s);
Vous imprimez la mauvaise valeur. Au lieu de cela, si la chaîne que vous imprimez l'objet scanners. Essaye ça
Scanner input = new Scanner(System.in);
String s = input.next();
System.out.println(s);