ตัวอย่างการบรรยายพร้อมผู้ให้คำปรึกษาซึ่งเป็นส่วนหนึ่งของหลักสูตร Codegym University ลงทะเบียนสำหรับหลักสูตรเต็ม
"อามีโก้ ถึงเวลาของคุณแล้ว ฉันจะบอกคุณเกี่ยวกับการป้อนข้อมูลด้วยแป้นพิมพ์"
"เราใช้System.outเพื่อแสดงข้อมูลบนหน้าจอ ในการรับอินพุต เราจะใช้System.in "
"ฟังดูง่าย"
"แต่System.inมีข้อบกพร่องอยู่ข้อหนึ่ง – มันให้เราอ่านรหัสอักขระจากแป้นพิมพ์เท่านั้น เพื่อแก้ไขปัญหานี้และอ่านข้อมูลจำนวนมากพร้อมกัน เราจะใช้โครงสร้างที่ซับซ้อนกว่านี้:"
ป้อนสตริงและตัวเลขจากแป้นพิมพ์
InputStream inputStream = System.in;
Reader inputStreamReader = new InputStreamReader(inputStream);
BufferedReader bufferedReader = new BufferedReader(inputStreamReader);
String name = bufferedReader.readLine(); //Read a string from the keyboard
String sAge = bufferedReader.readLine(); //Read a string from the keyboard
int nAge = Integer.parseInt(sAge); //Convert the string to a number.
เวอร์ชันที่กะทัดรัดกว่าตัวอย่างก่อนหน้า:
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
String name = reader.readLine();
String sAge = reader.readLine();
int nAge = Integer.parseInt(sAge);
กะทัดรัดยิ่งขึ้น
Scanner scanner = new Scanner(System.in);
String name = scanner.nextLine();
int age = scanner.nextInt();
"มีคำถามอะไรไหม?"
"เอ่อ...ฉันไม่เข้าใจอะไรเลย"
"หากต้องการอ่านสตริงจากแป้นพิมพ์ จะสะดวกที่สุดในการใช้ วัตถุBufferedReader แต่ในการทำเช่นนั้น คุณต้องผ่านวัตถุที่คุณจะอ่านข้อมูลมา ในกรณีนี้คือSystem.in "
"แต่System.inและBufferedReaderเข้ากันไม่ได้ เราจึงใช้อแดปเตอร์อื่น ซึ่งเป็น วัตถุ InputStreamReader อีกอัน "
"ฉันคิดว่าฉันเข้าใจแล้วคลาสสแกนเนอร์ นี้คืออะไร "
"Scanner อาจสะดวก แต่ก็ไม่มีประโยชน์มากนักเมื่อคุณดำเนินการต่อ (ทั้งในการเรียนและการทำงาน) คุณจะใช้ BufferedReader และ InputStreamReader บ่อยแต่ Scanner นั้นไม่ค่อยสะดวกเท่าไหร่ ในตัวอย่างของเรานั้นสะดวก แต่ใน อนาคตมันจะไม่มีประโยชน์บ่อยนัก ดังนั้นเราจะไม่ใช้มันมากนัก "
"ดูเหมือนจะชัดเจน แต่ฉันไม่แน่ใจว่าฉันเข้าใจทุกอย่าง"
GO TO FULL VERSION