ตัวอย่างการบรรยายพร้อมผู้ให้คำปรึกษาซึ่งเป็นส่วนหนึ่งของหลักสูตร Codegym University ลงทะเบียนสำหรับหลักสูตรเต็ม


"อามีโก้ ถึงเวลาของคุณแล้ว ฉันจะบอกคุณเกี่ยวกับการป้อนข้อมูลด้วยแป้นพิมพ์"

"เราใช้System.outเพื่อแสดงข้อมูลบนหน้าจอ ในการรับอินพุต เราจะใช้System.in "

"ฟังดูง่าย"

"แต่System.inมีข้อบกพร่องอยู่ข้อหนึ่ง – มันให้เราอ่านรหัสอักขระจากแป้นพิมพ์เท่านั้น เพื่อแก้ไขปัญหานี้และอ่านข้อมูลจำนวนมากพร้อมกัน เราจะใช้โครงสร้างที่ซับซ้อนกว่านี้:"

ตัวอย่างที่ 1
ป้อนสตริงและตัวเลขจากแป้นพิมพ์
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.
ตัวอย่างที่ 2
เวอร์ชันที่กะทัดรัดกว่าตัวอย่างก่อนหน้า:
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));

String name = reader.readLine();
String sAge = reader.readLine();
int nAge = Integer.parseInt(sAge);
ตัวอย่างที่ 3
กะทัดรัดยิ่งขึ้น
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 นั้นไม่ค่อยสะดวกเท่าไหร่ ในตัวอย่างของเรานั้นสะดวก แต่ใน อนาคตมันจะไม่มีประโยชน์บ่อยนัก ดังนั้นเราจะไม่ใช้มันมากนัก "

"ดูเหมือนจะชัดเจน แต่ฉันไม่แน่ใจว่าฉันเข้าใจทุกอย่าง"