La lecture de Entier la saisie de l'utilisateur dans DataInputStream en java?
Je suis en train d'essayer d'obtenir l'entrée de l'utilisateur à l'aide de DataInputStream. Mais cette affiche de l'ordure valeur entière au lieu de la valeur donnée
Mon code est:
import java.io.*;
public class Sequence {
public static void main(String[] args) throws IOException {
DataInputStream dis = new DataInputStream(System.in);
String str="Enter your Age :";
System.out.print(str);
int i=dis.readInt();
System.out.println((int)i);
}
}
Et la sortie est
Entrez votre Âge :12
825363722
Pls expliquer. Pourquoi suis-je de cette ordure de la valeur et de la façon de corriger l'erreur?
OriginalL'auteur harvish | 2013-06-26
Vous devez vous connecter pour publier un commentaire.
Le problème est que
readInt
ne se comporte pas comme vous pourriez vous attendre. Il n'est pas de la lecture d'une chaîne et de convertir la chaîne en nombre; il lit l'entrée *octets:Dans ce cas, si vous êtes sous Windows et entrée
12
entrez ensuite, les octets sont:Faire le calcul, 49 * 2 ^ 24 + 50 * 2 ^ 16 + 13 * 2 ^ 8 + 10 et vous obtenez 825363722.
Si vous voulez une méthode simple pour lire l'entrée, la caisse
Scanner
et voir si c'est ce que vous avez besoin.OriginalL'auteur Ziyao Wei
Afin d'obtenir les données de la
DataInputStream
vous devez faire ce qui suit -La
readInt()
méthode retourne les quatre octets de ce flux d'entrée, interprété comme un int. Selon le java docsCependant, vous devriez jeter un oeil à Scanner.
OriginalL'auteur JHS
La meilleure façon de le faire est d'utiliser
Scanner
OriginalL'auteur Ruchira Gayan Ranaweera
OriginalL'auteur Abhishek Petekar