Java เวอร์ชัน ต่างๆ จะมีคุณสมบัติที่แตกต่างกัน ตัวอย่างเช่น เครื่องสแกนใน Java ไม่ได้ถูกล็อคในเวอร์ชันก่อนหน้า และถูกใช้เพื่อรับข้อมูลอินพุตโดยเฉพาะ ที่นี่เราต้องพูดถึงอินพุตสตริงที่ใช้กันทั่วไป มีสองวิธีในคลาส Scanner: next และ nextLine ต่อไป เราจะให้คำอธิบายโดยละเอียดเกี่ยวกับวิธีการรับสตริงทั้งสองวิธีนี้
1.วิธีต่อไป
หากอักขระที่ถูกต้องที่ป้อนมีช่องว่างตามหลัง next() จะใช้ช่องว่างเป็นตัวสิ้นสุด ดังนั้น หากมีช่องว่างตรงกลางสตริงอินพุต จะไม่สามารถรับสตริงทั้งหมดได้โดยใช้วิธีถัดไป
นำเข้า java.util.Scanner; TestScanner1 ระดับสาธารณะ { โมฆะคงที่สาธารณะ main (String [] args) { สแกนเนอร์สแกน = สแกนเนอร์ใหม่ (System.in); // รับข้อมูลจากแป้นพิมพ์ System.out.println("รับในโหมดถัดไป:"); // ตรวจสอบว่ายังมีอินพุตอยู่หรือไม่ if (scan.hasNext()) { // วิธีถัดไปได้รับสตริง String str1 = scan.next(); System.out.println("ข้อมูลที่ป้อนคือ: " + str1); - - -
คุณจะเห็นว่าสตริง Java ไม่ได้ส่งออก
วิธี 2.nextLine
nextLine() ใช้ Enter เป็นอักขระสิ้นสุด กล่าวคือ เมธอด nextLine() จะส่งคืนอักขระทั้งหมดก่อนที่จะขึ้นบรรทัดใหม่
นำเข้า java.util.Scanner; TestScanner2 คลาสสาธารณะ { โมฆะคงที่สาธารณะ main (String [] args) { สแกนเนอร์สแกน = สแกนเนอร์ใหม่ (System.in); // วิธี NextLine ได้รับสตริง System.out.println ("วิธี nextLine ได้รับ: "); // ตรวจสอบว่ายังมีอินพุตอยู่หรือไม่ if (scan.hasNextLine()) { //รับข้อมูลจากคีย์บอร์ด String str2 = scan.nextLine(); System.out.println("ข้อมูลที่ป้อนคือ: " + str2); - - -
ข้างต้นคือวิธีที่คลาส Scanner ใน Java รับสตริง หลังจากอ่านบทความแล้ว คุณจะพบว่าส่วนถัดไปได้รับส่วนหนึ่งของสตริง ในขณะที่ nextLine จะแสดงเนื้อหาอักขระก่อนที่ทุกคนจะส่งคืน ผลลัพธ์