คลาสสแกนเนอร์ใน Java: ประเภทของตัวสร้างและเมธอด วิธีใช้งาน [พร้อมตัวอย่าง]

เผยแพร่แล้ว: 2020-07-28

ใครก็ตามที่ทำงานกับภาษาการเขียนโปรแกรม Java จะทราบดีถึงคลาส Scanner ใน Java และสำหรับนักพัฒนา Java ที่ต้องการซึ่งไม่รู้ว่าคลาส Scanner คืออะไรและจะใช้คลาส Scanner ใน Java ได้อย่างไร บทความนี้จึงเป็นบทนำที่สมบูรณ์แบบ

ในบทความนี้ เราจะพูดถึงคลาส Scanner ใน Java อย่างละเอียด วิธีการต่างๆ และวิธีทำงานของคลาส Scanner ดังนั้น หากคุณตั้งตารอที่จะเรียนรู้เพิ่มเติมเกี่ยวกับคลาส Scanner ใน Java โปรดอ่านต่อจนจบ!

สารบัญ

คลาส Scanner ใน Java คืออะไร?

คลาส Scanner ใน Java ใช้เพื่อรับอินพุตของผู้ใช้เป็นหลัก แพ็คเกจ java.util ประกอบด้วย คลาส Scanner ไม่เพียงแต่ขยายคลาส Object เท่านั้น แต่ยังสามารถใช้อินเทอร์เฟซ Iterator และ Closeable ได้อีกด้วย มันแยกส่วนข้อมูลที่ผู้ใช้ป้อนเป็นโทเค็นโดยใช้ตัวคั่น ซึ่งโดยค่าเริ่มต้นคือช่องว่าง

มันค่อนข้างง่ายที่จะใช้คลาส Scanner – ก่อนอื่น คุณต้องสร้างอ็อบเจ็กต์ของคลาส จากนั้นใช้เมธอดที่มีอยู่ในเอกสารคลาส Scanner

นอกจากจะเป็นวิธีที่ง่ายที่สุดวิธีหนึ่งในการรับข้อมูลอินพุตของผู้ใช้แล้ว คลาส Scanner ยังใช้อย่างกว้างขวางเพื่อแยกวิเคราะห์ข้อความสำหรับสตริงและประเภทดั้งเดิมโดยใช้นิพจน์ทั่วไป ตัวอย่างเช่น คุณสามารถใช้คลาส Scanner เพื่อรับอินพุตสำหรับประเภทดั้งเดิมต่างๆ เช่น int, long, double, byte, float และ short เป็นต้น

คุณสามารถประกาศคลาส Java Scanner ได้ดังนี้:

สแกนเนอร์ คลาส สุดท้าย สาธารณะ

ขยาย Object

ใช้ Iterator<String>

หากคุณต้องการรับอินสแตนซ์ของคลาส Scanner ที่อ่านอินพุตของผู้ใช้ คุณต้องส่งอินพุตสตรีม (System.in) ในตัวสร้างของคลาส Scanner ดังต่อไปนี้:

สแกนเนอร์ใน = สแกนเนอร์ ใหม่ (“สวัสดี upGrad”);

อ่าน: 6 เหตุผลยอดนิยมที่ Java เป็นที่นิยมในหมู่นักพัฒนา

คอนสตรัคเตอร์คลาส Scanner ต่างกันอย่างไร

ต่อไปนี้คือคอนสตรัคเตอร์คลาส Scanner ที่ใช้กันทั่วไปหกตัว:

  1. Scanner(File source) – สร้าง Scanner ใหม่เพื่อสร้างค่าที่สแกนจากไฟล์เฉพาะ
  2. Scanner(InputStream source) – สร้าง Scanner ใหม่เพื่อสร้างค่าที่สแกนจากอินพุตสตรีมที่ระบุ
  3. สแกนเนอร์ (แหล่งที่อ่านได้) – สร้างสแกนเนอร์ใหม่เพื่อส่งค่าที่สแกนจากแหล่งที่ระบุ
  4. Scanner(String source) – สร้าง Scanner ใหม่เพื่อสร้างค่าที่สแกนจากสตริงเฉพาะ
  5. Scanner (ซอร์ส ReadableByteChannel) – สร้าง Scanner ใหม่เพื่อสร้างค่าที่สแกนจากช่องสัญญาณที่ระบุ
  6. Scanner(Path source) – สร้าง Scanner ใหม่เพื่อสร้างค่าที่สแกนจากไฟล์ที่ระบุ

วิธีการคลาส Scanner ต่างกันอย่างไร

เช่นเดียวกับคอนสตรัคเตอร์คลาส Scanner ยังมีชุดเมธอดคลาส Scanner ที่ครอบคลุม ซึ่งแต่ละเมธอดมีจุดประสงค์เฉพาะ คุณสามารถใช้เมธอดคลาส Scanner สำหรับประเภทข้อมูลต่างๆ ได้ ด้านล่างนี้คือรายการวิธีการคลาส Scanner ที่ใช้กันอย่างแพร่หลายมากที่สุด:

  1. โมฆะ [close()] – วิธีนี้ใช้สำหรับปิดสแกนเนอร์
  2. รูปแบบ [ตัวคั่น ()] – วิธีนี้ช่วยให้ได้รูปแบบที่คลาส Scanner ใช้อยู่ในปัจจุบันเพื่อให้ตรงกับตัวคั่น
  3. Stream<MatchResult> [findAll()] – ให้สตรีมของผลลัพธ์การจับคู่ที่ตรงกับสตริงรูปแบบที่ระบุ
  4. สตริง [findInLine()] – ช่วยในการค้นหารูปแบบต่อไปของรูปแบบที่สร้างขึ้นจากสตริงที่ระบุ วิธีนี้ไม่พิจารณาตัวคั่น
  5. สตริง [nextLine()] – ใช้เพื่อรับสตริงอินพุตที่ข้ามไปของวัตถุสแกนเนอร์
  6. IOException [ioException()] – วิธีนี้จะช่วยในการรับ IOException ล่าสุดที่เครื่องสแกนเนอร์สามารถอ่านได้
  7. Locale [locale()] – ดึง Locale ของคลาส Scanner
  8. MatchResult [match()] – ให้ผลลัพธ์การจับคู่ของการสแกนครั้งล่าสุดที่ดำเนินการโดยสแกนเนอร์
  9. BigDecimal [nextBigDecimal()] – วิธีนี้ใช้เพื่อสแกนโทเค็นถัดไปของอินพุตเป็น BigDecimal
  10. BigInteger [nextBigInteger()] – วิธีนี้จะสแกนโทเค็นถัดไปของอินพุตเป็น BigInteger
  11. ไบต์ [nextByte()] – สแกนโทเค็นถัดไปของข้อมูลที่ผู้ใช้ป้อนเป็นค่าไบต์
  12. double [nextDouble()] – สแกนโทเค็นถัดไปของการป้อนข้อมูลของผู้ใช้เป็นค่าสองเท่า
  13. float [nextFloat()] – วิธีนี้จะสแกนโทเค็นถัดไปของอินพุตเป็นค่าทศนิยม
  14. int [nextInt()] – วิธีนี้ใช้เพื่อสแกนโทเค็นถัดไปของอินพุตเป็นค่า Int
  15. บูลีน:
  • [hasNext()] – วิธีนี้จะคืนค่าเป็น จริง หากเครื่องสแกนมีโทเค็นอื่นในการป้อนข้อมูลของผู้ใช้
  • [hasNextBigDecimal()] – วิธีนี้จะตรวจสอบว่าโทเค็นถัดไปในอินพุตของสแกนเนอร์สามารถตีความว่าเป็น BigDecimal ได้หรือไม่โดยใช้เมธอด nextBigDecimal()
  • [hasNextBoolean()] – ตรวจสอบว่าโทเค็นถัดไปในอินพุตของสแกนเนอร์สามารถตีความว่าเป็นบูลีนโดยใช้เมธอด nextBoolean() ได้หรือไม่
  • [hasNextByte()] – ตรวจสอบว่าโทเค็นถัดไปในอินพุตของสแกนเนอร์สามารถตีความว่าเป็น Byte ได้หรือไม่โดยใช้เมธอด nextBigDecimal()
  • [hasNextFloat()] – ตรวจสอบว่าโทเค็นถัดไปในอินพุตของสแกนเนอร์สามารถตีความว่าเป็น Float โดยใช้เมธอด nextFloat() ได้หรือไม่
  • [hasNextInt()] – ตรวจสอบว่าโทเค็นถัดไปในการป้อนข้อมูลของสแกนเนอร์สามารถตีความว่าเป็น Int ได้โดยใช้เมธอด nextInt() หรือไม่

ชำระเงิน: เงินเดือนนักพัฒนา Java ในอินเดีย

จะใช้คลาส Scanner ใน Java ได้อย่างไร?

ดังที่เราได้กล่าวไว้ก่อนหน้านี้ การใช้คลาส Scanner ใน Java นั้นค่อนข้างง่าย ด้านล่างนี้เป็นตัวอย่างที่สาธิตวิธีการใช้คลาส Scanner โดยใช้ เมธอด nextLine() :

นำเข้า java.util.*;

ตัวอย่างสแกนเนอร์ คลาส สาธารณะ {

โมฆะ คงที่ สาธารณะ หลัก (สตริง args[]){

สแกนเนอร์ใน = สแกนเนอร์ ใหม่ (System.in);

System.out.print(“ป้อนชื่อของคุณ:“);

ชื่อสตริง = in.nextLine();

System.out.println(“ชื่อคือ: ” + ชื่อ);

in.close();

}

}

หากคุณรันโปรแกรมนี้ มันจะส่งผลลัพธ์ต่อไปนี้:

ใส่ชื่อของคุณ: John Hanks

ชื่อ : จอห์น แฮงค์ส

อ่านเพิ่มเติม: Type Casting ใน Java คืออะไร | ทำความเข้าใจการหล่อแบบเป็นมือใหม่

ห่อ

บทความนี้ครอบคลุมพื้นฐานของคลาส Scanner ใน Java หากคุณคุ้นเคยกับการสร้างและเมธอดของคลาส Scanner ด้วยเวลาและการฝึกฝนอย่างต่อเนื่อง คุณจะเชี่ยวชาญการใช้คลาส Scanner ในโปรแกรม Java

หากคุณสนใจที่จะเรียนรู้เพิ่มเติมเกี่ยวกับ Java การพัฒนาซอฟต์แวร์แบบฟูลสแตก โปรดดูประกาศนียบัตร PG ของ upGrad & IIIT-B ด้านการพัฒนาซอฟต์แวร์แบบครบวงจร ซึ่งออกแบบมาสำหรับมืออาชีพที่ทำงานและมีการฝึกอบรมที่เข้มงวดมากกว่า 500 ชั่วโมง โครงการมากกว่า 9 โครงการ และการมอบหมายงาน สถานะศิษย์เก่า IIIT-B โครงการหลักและความช่วยเหลือด้านงานกับบริษัทชั้นนำ

เตรียมความพร้อมสู่อาชีพแห่งอนาคต

การเรียนรู้ที่เชื่อถือได้ในอุตสาหกรรม - ใบรับรองที่เป็นที่ยอมรับในอุตสาหกรรม
เรียนรู้เพิ่มเติม @ UPGRAD