Welche Klasse kann ich zum Lesen einer Ganzzahlvariablen in Java verwenden?
Welche Klasse kann ich zum Lesen einer Ganzzahlvariablen in Java verwenden?
Antworten:
Sie können java.util.Scanner
( API ) verwenden:
import java.util.Scanner;
//...
Scanner in = new Scanner(System.in);
int num = in.nextInt();
Es kann auch Eingaben mit regulären Ausdrücken usw. tokenisieren. Die API enthält Beispiele und es gibt viele andere auf dieser Site (z. B. Wie kann ich verhindern, dass ein Scanner Ausnahmen auslöst, wenn der falsche Typ eingegeben wird? ).
Wenn Sie Java 6 verwenden, können Sie den folgenden Oneliner verwenden, um eine Ganzzahl von der Konsole zu lesen:
int n = Integer.parseInt(System.console().readLine());
Hier stelle ich 2 Beispiele zum Lesen des ganzzahligen Werts von der Standardeingabe bereit
Beispiel 1
import java.util.Scanner;
public class Maxof2
{
public static void main(String args[])
{
//taking value as command line argument.
Scanner in = new Scanner(System.in);
System.out.printf("Enter i Value: ");
int i = in.nextInt();
System.out.printf("Enter j Value: ");
int j = in.nextInt();
if(i > j)
System.out.println(i+"i is greater than "+j);
else
System.out.println(j+" is greater than "+i);
}
}
Beispiel 2
public class ReadandWritewhateveryoutype
{
public static void main(String args[]) throws java.lang.Exception
{
System.out.printf("This Program is used to Read and Write what ever you type \nType quit to Exit at any Moment\n\n");
java.io.BufferedReader r = new java.io.BufferedReader (new java.io.InputStreamReader (System.in));
String hi;
while (!(hi=r.readLine()).startsWith("quit"))System.out.printf("\nYou have typed: %s \n",hi);
}
}
Ich bevorzuge das erste Beispiel, es ist einfach und ziemlich verständlich.
Sie können die JAVA-Programme online auf dieser Website kompilieren und ausführen: http://ideone.com
Überprüfen Sie dieses:
public static void main(String[] args) {
String input = null;
int number = 0;
try {
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(System.in));
input = bufferedReader.readLine();
number = Integer.parseInt(input);
} catch (NumberFormatException ex) {
System.out.println("Not a number !");
} catch (IOException e) {
e.printStackTrace();
}
}
NumberFormatException
bringt es, den Stack-Trace abzufangen und dann zu drucken?
Die zweite Antwort oben ist die einfachste.
int n = Integer.parseInt(System.console().readLine());
Die Frage lautet "Lesen von Standardeingaben".
Eine Konsole ist ein Gerät, das normalerweise der Tastatur und dem Display zugeordnet ist, von dem aus ein Programm gestartet wird.
Möglicherweise möchten Sie testen, ob kein Java-Konsolengerät verfügbar ist, z. B. dass Java VM nicht über eine Befehlszeile gestartet wurde oder die Standard-Eingabe- und Ausgabestreams umgeleitet werden.
Console cons;
if ((cons = System.console()) == null) {
System.err.println("Unable to obtain console");
...
}
Die Verwendung der Konsole ist eine einfache Möglichkeit, Zahlen einzugeben. Kombiniert mit parseInt () / Double () usw.
s = cons.readLine("Enter a int: ");
int i = Integer.parseInt(s);
s = cons.readLine("Enter a double: ");
double d = Double.parseDouble(s);
Überprüfen Sie dieses:
import java.io.*;
public class UserInputInteger
{
public static void main(String args[])throws IOException
{
InputStreamReader read = new InputStreamReader(System.in);
BufferedReader in = new BufferedReader(read);
int number;
System.out.println("Enter the number");
number = Integer.parseInt(in.readLine());
}
}
Dies verursacht Kopfschmerzen, daher habe ich eine Lösung aktualisiert, die mit den gängigsten Hardware- und Softwaretools ausgeführt wird, die Benutzern im Dezember 2014 zur Verfügung stehen. Bitte beachten Sie, dass JDK / SDK / JRE / Netbeans und ihre nachfolgenden Klassen, Vorlagenbibliotheks-Compiler, Editoren und Debuggerz sind frei.
Dieses Programm wurde mit Java v8 u25 getestet. Es wurde geschrieben und gebaut mit
Netbeans IDE 8.0.2, JDK 1.8, OS Win8.1 (Entschuldigung) und Browser Chrome (Doppel-Entschuldigung) IDEs bei ZERO COST - weil Informationen (und IDEs) immer frei sein sollten. Von Tapper7. Für jeden.
Codeblock:
package modchk; //Netbeans requirement.
import java.util.Scanner;
//import java.io.*; is not needed Netbeans automatically includes it.
public class Modchk {
public static void main(String[] args){
int input1;
int input2;
//Explicity define the purpose of the .exe to user:
System.out.println("Modchk by Tapper7. Tests IOStream and basic bool modulo fxn.\n"
+ "Commented and coded for C/C++ programmers new to Java\n");
//create an object that reads integers:
Scanner Cin = new Scanner(System.in);
//the following will throw() if you don't do you what it tells you or if
//int entered == ArrayIndex-out-of-bounds for your system. +-~2.1e9
System.out.println("Enter an integer wiseguy: ");
input1 = Cin.nextInt(); //this command emulates "cin >> input1;"
//I test like Ernie Banks played hardball: "Let's play two!"
System.out.println("Enter another integer...anyday now: ");
input2 = Cin.nextInt();
//debug the scanner and istream:
System.out.println("the 1st N entered by the user was " + input1);
System.out.println("the 2nd N entered by the user was " + input2);
//"do maths" on vars to make sure they are of use to me:
System.out.println("modchk for " + input1);
if(2 % input1 == 0){
System.out.print(input1 + " is even\n"); //<---same output effect as *.println
}else{
System.out.println(input1 + " is odd");
}//endif input1
//one mo' 'gain (as in istream dbg chk above)
System.out.println("modchk for " + input2);
if(2 % input2 == 0){
System.out.print(input2 + " is even\n");
}else{
System.out.println(input2 + " is odd");
}//endif input2
}//end main
}//end Modchk