ฉันสามารถใช้คลาสใดในการอ่านตัวแปรจำนวนเต็มใน Java
ฉันสามารถใช้คลาสใดในการอ่านตัวแปรจำนวนเต็มใน Java
คำตอบ:
คุณสามารถใช้java.util.Scanner
( API ):
import java.util.Scanner;
//...
Scanner in = new Scanner(System.in);
int num = in.nextInt();
นอกจากนี้ยังสามารถโทเค็นการป้อนข้อมูลด้วยนิพจน์ทั่วไปเป็นต้น API มีตัวอย่างและมีอื่น ๆ อีกมากมายในไซต์นี้ (เช่นฉันจะป้องกันไม่ให้สแกนเนอร์โยนข้อยกเว้นเมื่อป้อนผิดประเภทได้อย่างไร )
หากคุณใช้ Java 6 คุณสามารถใช้ oneliner ต่อไปนี้เพื่ออ่านจำนวนเต็มจากคอนโซล:
int n = Integer.parseInt(System.console().readLine());
ที่นี่ฉันกำลังให้ 2 ตัวอย่างเพื่ออ่านค่าจำนวนเต็มจากอินพุตมาตรฐาน
ตัวอย่าง 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);
}
}
ตัวอย่าง 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);
}
}
ฉันชอบตัวอย่างแรกมันง่ายและเข้าใจได้ดี
คุณสามารถรวบรวมและเรียกใช้โปรแกรม JAVA ทางออนไลน์ได้ที่เว็บไซต์นี้: http://ideone.com
ตรวจสอบสิ่งนี้:
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
และพิมพ์ stack trace?
คำตอบที่สองข้างต้นเป็นคำตอบที่ง่ายที่สุด
int n = Integer.parseInt(System.console().readLine());
คำถามคือ "วิธีอ่านจากอินพุตมาตรฐาน"
คอนโซลเป็นอุปกรณ์ที่มักจะเชื่อมโยงกับแป้นพิมพ์และจอแสดงผลที่เปิดใช้งานโปรแกรม
คุณอาจต้องการทดสอบว่าไม่มีอุปกรณ์คอนโซล Java หรือไม่เช่น Java VM ไม่ได้เริ่มจากบรรทัดคำสั่งหรือสตรีมอินพุตและเอาต์พุตมาตรฐานจะถูกเปลี่ยนเส้นทาง
Console cons;
if ((cons = System.console()) == null) {
System.err.println("Unable to obtain console");
...
}
การใช้คอนโซลเป็นวิธีง่ายๆในการป้อนตัวเลข รวมกับ parseInt () / Double () เป็นต้น
s = cons.readLine("Enter a int: ");
int i = Integer.parseInt(s);
s = cons.readLine("Enter a double: ");
double d = Double.parseDouble(s);
ตรวจสอบสิ่งนี้:
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());
}
}
สิ่งนี้ทำให้เกิดอาการปวดหัวดังนั้นฉันจึงอัปเดตโซลูชันที่จะทำงานโดยใช้เครื่องมือฮาร์ดแวร์และซอฟต์แวร์ที่พบบ่อยที่สุดสำหรับผู้ใช้ในเดือนธันวาคม 2014 โปรดทราบว่า JDK / SDK / JRE / Netbeans และคลาสที่ตามมาคอมไพเลอร์ไลบรารีเทมเพลตตัวแก้ไขและ debuggerz คือ ฟรี.
โปรแกรมนี้ได้รับการทดสอบด้วย Java v8 u25 มันถูกเขียนและสร้างขึ้นโดยใช้
Netbeans IDE 8.0.2, JDK 1.8, OS คือ win8.1 (ขอโทษ) และเบราว์เซอร์เป็น Chrome (ขอโทษสองครั้ง) - มีไว้เพื่อช่วยจัดการ OG ของ UNIX-cmd-line กับ GUI-Web-based ที่ทันสมัย IDE ที่ ZERO COST - เนื่องจากข้อมูล (และ IDE) ควรเป็นข้อมูลฟรีเสมอ โดย Tapper7. สำหรับทุกคน.
บล็อกรหัส:
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