Tôi có thể sử dụng lớp nào để đọc một biến số nguyên trong Java?
Tôi có thể sử dụng lớp nào để đọc một biến số nguyên trong Java?
Câu trả lời:
Bạn có thể sử dụng java.util.Scanner
( API ):
import java.util.Scanner;
//...
Scanner in = new Scanner(System.in);
int num = in.nextInt();
Nó cũng có thể mã hóa đầu vào bằng biểu thức chính quy, v.v. API có các ví dụ và có nhiều ví dụ khác trong trang web này (ví dụ: Làm cách nào để giữ máy quét không ném ra ngoại lệ khi nhập sai loại? ).
Nếu bạn đang sử dụng Java 6, bạn có thể sử dụng oneliner sau để đọc một số nguyên từ bảng điều khiển:
int n = Integer.parseInt(System.console().readLine());
Ở đây tôi cung cấp 2 ví dụ để đọc giá trị số nguyên từ đầu vào chuẩn
ví dụ 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);
}
}
Ví dụ 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);
}
}
Tôi thích Ví dụ đầu tiên hơn, nó dễ dàng và khá dễ hiểu.
Bạn có thể biên dịch và chạy các chương trình JAVA trực tuyến tại trang web này: http://ideone.com
Kiểm tra cái này:
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
và sau đó in dấu vết ngăn xếp là gì?
Câu trả lời thứ hai ở trên là câu trả lời đơn giản nhất.
int n = Integer.parseInt(System.console().readLine());
Câu hỏi đặt ra là "Làm thế nào để đọc từ đầu vào chuẩn".
Bàn điều khiển là một thiết bị thường được liên kết với bàn phím và màn hình mà từ đó chương trình được khởi chạy.
Bạn có thể muốn kiểm tra nếu không có thiết bị điều khiển Java nào khả dụng, ví dụ như máy ảo Java không được khởi động từ một dòng lệnh hoặc các luồng đầu vào và đầu ra tiêu chuẩn bị chuyển hướng.
Console cons;
if ((cons = System.console()) == null) {
System.err.println("Unable to obtain console");
...
}
Sử dụng bảng điều khiển là một cách đơn giản để nhập số. Kết hợp với parseInt () / Double (), v.v.
s = cons.readLine("Enter a int: ");
int i = Integer.parseInt(s);
s = cons.readLine("Enter a double: ");
double d = Double.parseDouble(s);
kiểm tra cái này:
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());
}
}
Điều này gây đau đầu vì vậy tôi đã cập nhật một giải pháp sẽ chạy bằng cách sử dụng các công cụ phần cứng và phần mềm phổ biến nhất có sẵn cho người dùng vào tháng 12 năm 2014. Xin lưu ý rằng JDK / SDK / JRE / Netbeans và các lớp tiếp theo, trình biên dịch thư viện mẫu, trình chỉnh sửa và trình gỡ lỗi miễn phí.
Chương trình này đã được thử nghiệm với Java v8 u25. Nó được viết và xây dựng bằng cách sử dụng
Netbeans IDE 8.0.2, JDK 1.8, hệ điều hành là win8.1 (xin lỗi) và trình duyệt là Chrome (xin lỗi kép) - nhằm hỗ trợ đối phó của UNIX-cmd-line OG với GUI-Web hiện đại IDE KHÔNG CÓ CHI PHÍ - vì thông tin (và IDE) phải luôn miễn phí. Bởi Tapper7. Danh cho tât cả.
khối mã:
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