วิธีรับอินพุตของผู้ใช้ใน Java [พร้อมตัวอย่าง]
เผยแพร่แล้ว: 2021-05-27สารบัญ
บทนำ
การ ป้อนข้อมูลของผู้ใช้ใน Java เป็นขั้นตอนแรกสู่การสร้างซอฟต์แวร์ที่ประสบความสำเร็จใน Java โปรแกรม Java รวบรวมอินพุตจากผู้ใช้ผ่านแหล่งอินพุตต่างๆ เช่น เมาส์ คีย์บอร์ด คำขอเครือข่าย อาร์กิวเมนต์ CLI เป็นต้น Java ยังมีแพ็คเกจ I/O ต่างๆ ที่นำเข้าไปยังโปรแกรมเพื่อดำเนินการอินพุต-เอาต์พุตได้ แพ็คเกจเหล่านี้รองรับอินพุตประเภทดั้งเดิม เช่น double, integer, strings เป็นต้น
บทความนี้จะเน้นไปที่วิธีการต่างๆ เช่น Scanner, BufferedReader และ InputStreamReader เพื่อรับอินพุตของผู้ใช้ ใน Java
จะรับอินพุตใน Java โดยใช้ Scanner Class ได้อย่างไร?
คลาส Scanner เป็นหนึ่งในวิธีการในแพ็คเกจ “java.util” ที่แยกวิเคราะห์และจัดการอินพุตประเภทดั้งเดิมทั้งหมด คลาส Scanner จะขอให้ผู้ใช้ป้อนข้อมูล จากนั้นจะพิมพ์แบบเดียวกันบนหน้าจอหรือคอนโซล คุณสามารถนำเข้าคลาส Scanner จากแพ็คเกจ “java.util” ในโปรแกรม และสร้างอ็อบเจ็กต์เพื่อใช้เมธอดของมัน
ตัวอย่างเช่น,
การทดสอบเครื่องสแกน = เครื่องสแกนใหม่ (System.in);
ในข้อความสั่งด้านบน การทดสอบคือชื่อของอ็อบเจ็กต์ และ System.in คืออินพุตสตรีม อินสแตนซ์ Scanner ที่สร้างขึ้นจะสแกน อินพุตของผู้ใช้ใน Java
หมายเหตุ: ไม่จำเป็นต้องเขียน System.in เป็นสตริงอินพุตในโปรแกรมของคุณ คุณสามารถแทนที่ด้วยไฟล์และไฟล์ที่จะอ่าน สตริงเป็นสตรีมอินพุต
ตัวอย่างเช่น,
การทดสอบเครื่องสแกน = เครื่องสแกนใหม่ (FileInputStream ใหม่ (“testFile.txt”), “UTF-8”);
ตรวจสอบให้แน่ใจว่าคุณเขียนโค้ด {test.close()} เพื่อปิดสแกนเนอร์เมื่อคุณแก้ไขเสร็จแล้ว
วิธีการสแกนเนอร์สำหรับการอ่านอินพุตจากผู้ใช้
ตารางต่อไปนี้แสดงรายการวิธีที่เครื่องสแกนใช้ในการอ่าน อินพุตใน Java ที่ผู้ใช้ป้อน
วิธี | ประเภทคืน | คำอธิบาย |
ต่อไป() | สตริง | ส่งคืนโทเค็นถัดไปจาก Scanner |
ถัดไปไบต์ () | ไบต์ | อ่านอินพุตถัดไปเป็นไบต์ |
ถัดไปFloat() | ลอย | อ่านอินพุตถัดไปเป็นแบบลอย |
ต่อไปInt() | จำนวนเต็ม | อ่านอินพุตถัดไปเป็นจำนวนเต็ม |
ถัดไปShort() | สั้น | อ่านอินพุตถัดไปโดยย่อ |
ถัดไปลอง() | ยาว | อ่านอินพุตถัดไปแบบยาว |
ถัดไปบูลีน() | บูลีน | อ่านอินพุตถัดไปเป็นบูลีนและส่งกลับค่า |
ต่อไปบรรทัด() | สตริง | เลื่อนเครื่องสแกนหนึ่งบรรทัดและส่งกลับอินพุตที่ข้ามไป |
ตัวอย่าง
โปรแกรม Java ต่อไปนี้ใช้คลาส Scanner เพื่อรับ อินพุตของผู้ใช้ใน Java (สตริง จำนวนเต็ม และลอย)
นำเข้า java.util.Scanner; คลาส TakeUserInput { โมฆะคงที่สาธารณะหลัก (สตริง args[]) { int ก; ลอยข; สตริงค; การทดสอบเครื่องสแกน = เครื่องสแกนใหม่ (System.in); //รับอินพุตของผู้ใช้เป็น String System.out.println(“พิมพ์สตริง:“); c = in.nextLine(); System.out.println(“สตริงอินพุตของผู้ใช้คือ:“+c); //รับอินพุตของผู้ใช้เป็นจำนวนเต็ม System.out.println(“พิมพ์จำนวนเต็ม:“); a = in.nextInt(); System.out.println(“จำนวนเต็มอินพุตของผู้ใช้คือ:“+a); //รับอินพุตของผู้ใช้เป็น float System.out.println("พิมพ์เลขทศนิยม: "); b = in.nextFloat(); System.out.println(“หมายเลขโฟลตอินพุตของผู้ใช้คือ: “+b); }} |
เอาท์พุต
พิมพ์สตริง: แอนดรูว์ User Input String คือ: Andrew พิมพ์จำนวนเต็ม: 03 จำนวนเต็มอินพุตของผู้ใช้คือ: 03 พิมพ์หมายเลขลอย: 61.46 ผู้ใช้อินพุตจำนวนโฟลตคือ: 61.46 |
หากคุณต้องการเรียนรู้เพิ่มเติมเกี่ยวกับการรับอินพุตใน Java โดยใช้คลาสสแกนเนอร์ ให้ตรวจสอบ Multiple String Input ใน Java โดยใช้ บล็อก Scanner
BufferedReader และ InputStreamReader Methods
BufferedReader เป็นคลาสอื่นใน Java ที่สแกนสตรีมของอักขระจากสตรีมอินพุตแบบอักขระ InputStreamReader เป็นฟังก์ชันใน Java ที่แปลงสตรีมอินพุตเป็นลำดับของอักขระเพื่อให้ BufferedReader สแกน คลาส BufferedReader ยอมรับ InputStream เป็นพารามิเตอร์
คลาส BufferedReader ใช้เมธอด read() และ readLine() เพื่ออ่านอักขระและบรรทัดถัดไปและส่งคืน
คุณต้องนำเข้าแพ็คเกจ java.io.BufferedReader เพื่อสร้างคลาส BufferedReader
// สร้าง FileReader
การทดสอบ FileReader = FileReader ใหม่ (ไฟล์สตริง);
// สร้าง BufferedReader
BufferedReader a = ใหม่ BufferedReader (ทดสอบ);
รับ ปริญญาวิศวกรรมซอฟต์แวร์ ออนไลน์จากมหาวิทยาลัยชั้นนำของโลก รับโปรแกรม PG สำหรับผู้บริหาร โปรแกรมประกาศนียบัตรขั้นสูง หรือโปรแกรมปริญญาโท เพื่อติดตามอาชีพของคุณอย่างรวดเร็ว
วิธีการ BufferedReader สำหรับการอ่านอินพุตจาก User
ตารางต่อไปนี้แสดงรายการวิธีการที่โปรแกรมอ่านบัฟเฟอร์ใช้เพื่ออ่าน อินพุตใน Java ที่ผู้ใช้ป้อน
วิธี | คำอธิบาย |
พร้อม() | ตรวจสอบว่าโปรแกรมอ่านไฟล์อยู่ในสถานะอ่านหรือไม่ |
เครื่องหมาย() | ทำเครื่องหมายตำแหน่งในตัวอ่านบัฟเฟอร์จนถึงจุดที่อ่านข้อมูลแล้ว |
รีเซ็ต() | ส่งคืนการควบคุมไปยังจุดที่ตั้งเครื่องหมายไว้ |
ตัวอย่าง
โปรแกรม Java ต่อไปนี้ใช้คลาส BufferedReader ควบคู่ไปกับคลาส InputStreamReader เพื่อรับ อินพุตของผู้ใช้ใน Java
นำเข้า java.io.BufferedReader; นำเข้า java.io.FileReader; นำเข้า java.io.IOException; การทดสอบระดับสาธารณะ { โมฆะคงที่สาธารณะหลัก (สตริง [] args) { BufferedReader บัฟเฟอร์ = null; พยายาม { สตริง scanFirstLine; บัฟเฟอร์ = ใหม่ BufferedReader (FileReader ใหม่ (“D:\\user_input.txt”)); ในขณะที่ ((scanFirstLine = buffer.readLine()) != null) { System.out.println(scanFirstLine); System.out.println(scanFirstLine); ระบบ } } จับ (IOException ก) { ก.printStackTrace(); } ในที่สุด { พยายาม { ถ้า (บัฟเฟอร์ != null) บัฟเฟอร์.close(); } จับ (IOException b) { b.printStackTrace(); } } } } |
เอาท์พุต
พบข้อมูลต่อไปนี้ในไฟล์: นี่คือตัวอย่างคำสั่งที่ BufferedReader อ่านจากไฟล์ |
ในตัวอย่างข้างต้น เราได้สร้างตัวอ่านบัฟเฟอร์ชื่อบัฟเฟอร์ โปรแกรมอ่านบัฟเฟอร์เชื่อมโยงกับไฟล์ “user_input.txt”
จากนั้น เราใช้เมธอด readLine() เพื่อสแกนอักขระจากบัฟเฟอร์ของตัวอ่านบัฟเฟอร์
บทสรุป
ในบทความนี้ เราได้กล่าวถึงวิธีการที่ใช้ในการรับ อินพุตของผู้ใช้ใน Java เราได้พูดถึงวิธีการ Scanner และ BufferedReader พร้อมกับตัวอย่าง เราได้กล่าวถึงวิธีการที่คลาส Scanner และ BufferedReader ใช้ในการรับ อินพุต ใน Java เราหวังว่าคุณจะมีความเข้าใจพื้นฐานเกี่ยวกับวิธีจัดการกับ อินพุตใน Java หากคุณต้องการเรียนรู้ภาษาการเขียนโปรแกรม Java เพิ่มเติม ลองดู Executive PG Program ของ upGrad ในหลักสูตร Full Stack Development ที่ ออกแบบมาสำหรับมืออาชีพที่ทำงาน