Jakiej klasy mogę używać do odczytywania zmiennej całkowitej w Javie?
Jakiej klasy mogę używać do odczytywania zmiennej całkowitej w Javie?
Odpowiedzi:
Możesz użyć java.util.Scanner
( API ):
import java.util.Scanner;
//...
Scanner in = new Scanner(System.in);
int num = in.nextInt();
Może również tokenizować dane wejściowe za pomocą wyrażeń regularnych itp. API ma przykłady, a na tej stronie jest wiele innych (np. Jak zapobiec rzucaniu przez skaner wyjątków, gdy zostanie wprowadzony niewłaściwy typ? ).
Jeśli używasz Java 6, możesz użyć następującego narzędzia oneliner, aby odczytać liczbę całkowitą z konsoli:
int n = Integer.parseInt(System.console().readLine());
Tutaj podaję 2 przykłady odczytu wartości całkowitej ze standardowego wejścia
Przykład 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);
}
}
Przykład 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);
}
}
Wolę pierwszy przykład, jest łatwy i całkiem zrozumiały.
Możesz kompilować i uruchamiać programy JAVA online na tej stronie: http://ideone.com
Sprawdź ten:
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
a następnie drukowaniu śladu stosu?
Druga odpowiedź powyżej jest najprostsza.
int n = Integer.parseInt(System.console().readLine());
Pytanie brzmi: „Jak czytać ze standardowego wejścia”.
Konsola to urządzenie zwykle skojarzone z klawiaturą i wyświetlaczem, z którego uruchamiany jest program.
Możesz chcieć przetestować, czy żadne urządzenie konsoli Java nie jest dostępne, np. Java VM, która nie została uruchomiona z wiersza poleceń lub standardowe strumienie wejściowe i wyjściowe są przekierowywane.
Console cons;
if ((cons = System.console()) == null) {
System.err.println("Unable to obtain console");
...
}
Korzystanie z konsoli to prosty sposób wprowadzania liczb. W połączeniu z parseInt () / Double () itp.
s = cons.readLine("Enter a int: ");
int i = Integer.parseInt(s);
s = cons.readLine("Enter a double: ");
double d = Double.parseDouble(s);
Sprawdź ten:
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());
}
}
Powoduje to bóle głowy, dlatego zaktualizowałem rozwiązanie, które będzie działać przy użyciu najpopularniejszych narzędzi sprzętowych i programowych dostępnych dla użytkowników w grudniu 2014 r. Należy pamiętać, że JDK / SDK / JRE / Netbeans i ich kolejne klasy, kompilatory bibliotek szablonów, edytory i narzędzia do debugowania są wolny.
Ten program został przetestowany z Javą v8 u25. Został napisany i zbudowany przy użyciu
Netbeans IDE 8.0.2, JDK 1.8, OS to win8.1 (przepraszam), a przeglądarka to Chrome (podwójne przeprosiny) - ma na celu pomóc UNIX-cmd-line OG w radzeniu sobie z nowoczesnym GUI opartym na sieci WWW IDE na ZERO KOSZTÓW - ponieważ informacje (i IDE) powinny być zawsze bezpłatne. Przez Tapper7. Dla wszystkich.
blok kodu:
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