CodeGym /จาวาบล็อก /สุ่ม /StringTokenizer ใน Java
John Squirrels
ระดับ
San Francisco

StringTokenizer ใน Java

เผยแพร่ในกลุ่ม
คลาส StringTokenizerใน Java จัดเตรียมวิธี tokenizer Stringสำหรับการแยกสตริงออกเป็นโทเค็นตามตัวคั่นที่ระบุ สตริงโทเค็อาจเป็นสตริงใดๆ ที่แยกโทเค็น เช่น เครื่องหมายจุลภาค อัฒภาค หรือช่องว่าง การใช้วิธี tokenizer Stringของ คลาส StringTokenizerเราสามารถแยกสตริงออกเป็นส่วนที่เป็นส่วนประกอบได้ ด้วยการ เรียกใช้เมธอด nextToken()เราสามารถดึงโทเค็นแต่ละอันกลับมาได้ และโดยใช้เมธอดhasMoreTokens()เราจะสามารถตรวจสอบได้ว่ายังมีโทเค็นเหลืออยู่หรือไม่ สามารถใช้เมธอด length() ของคลาส StringTokenizer เพื่อรับความยาวของโทเค็แต่ละรายการได้ StringTokenizer Stringเป็นเครื่องมือที่มีประโยชน์สำหรับการจัดการสตริง และสามารถใช้เพื่อแยกวิเคราะห์ไฟล์ CSV, URL หรือข้อมูลที่เป็นข้อความอื่นๆ คลาสStringTokenizerเป็นส่วนหนึ่งของ แพ็กเกจ Java.utilและจัดเตรียมวิธีง่ายๆ ในการแบ่งสตริงออกเป็นโทเค็น คลาสมีคอนสตรัคเตอร์สองตัว ตัวหนึ่งใช้สตริงเพื่อทำโทเค็นและอักขระหรือสตริงตัวคั่น และอีกตัวหนึ่งรับอาร์กิวเมนต์เดียวกัน เช่นเดียวกับแฟล็กบูลีนที่ระบุว่าจะรวมตัวคั่นเป็นโทเค็นหรือไม่ เมื่อคุณสร้าง ออบเจ็กต์ StringTokenizerแล้ว คุณสามารถใช้วิธีการต่างๆ ของมันเพื่อวนซ้ำโทเค็นและดำเนินการต่างๆ กับโทเค็นเหล่านั้นได้

วิธีโทเค็น

วิธีการโทเค็นเป็นกระบวนการแยกสตริงออกเป็นส่วนเล็ก ๆ หรือโทเค็น กระบวนการนี้ดำเนินการโดยใช้ตัวคั่น ซึ่งอาจเป็นอักขระหรือสตริงอักขระที่แยกแต่ละโทเค็น ตัวอย่างเช่น พิจารณาสตริงต่อไปนี้:

String input = "Hello World! How are you today?";
หากเราต้องการแยกสตริงนี้ออกเป็นคำเดี่ยวๆ เราสามารถใช้อักขระเว้นวรรคเป็นตัวคั่นได้ เช่น:

StringTokenizer tokenizer = new StringTokenizer(input, " ");
while (tokenizer.hasMoreTokens()) {
    String token = tokenizer.nextToken();
    System.out.println(token);
}

เอาท์พุต

สวัสดีชาวโลก! วันนี้คุณเป็นอย่างไรบ้าง?
ในตัวอย่างนี้ เราสร้าง ออบเจ็กต์ StringTokenizer ใหม่ โดยมีสตริงอินพุตและอักขระเว้นวรรคเป็นตัวคั่น จากนั้นเราจะวนซ้ำโทเค็นโดยใช้ วิธี hasMoreTokens()และดึงข้อมูลแต่ละโทเค็นโดยใช้วิธีnextToken() ในที่สุด เราก็พิมพ์แต่ละโทเค็นไปยังคอนโซล

ความยาวโทเค็น

นอกเหนือจากฟังก์ชันการทำงานพื้นฐานที่ได้รับจากเมธอดnextToken() แล้ว คลาส StringTokenizerยังมีวิธีการในการดึงความยาวของโทเค็นแต่ละอันและการดึงโทเค็นเฉพาะตามดัชนีอีกด้วย หากต้องการทราบความยาวของโทเค็นปัจจุบัน คุณสามารถใช้วิธีtoken.length() ได้ ตัวอย่างเช่น:

public class StringTokenizerExample {
    public static void main(String[] args) {
        String input = "Hello World! How are you today?";
        StringTokenizer tokenizer = new StringTokenizer(input, " ");
        while (tokenizer.hasMoreTokens()) {
            String token = tokenizer.nextToken();
            System.out.println("Token: " + token + " Length: " + token.length());
        }
    }
}

เอาท์พุต

โทเค็น: สวัสดี ความยาว: 5 โทเค็น: โลก! ความยาว: 6 โทเค็น: ความยาว: 3 โทเค็น: มีความยาว: 3 โทเค็น: คุณ ความยาว: 3 โทเค็น: วันนี้? ความยาว: 6
ในตัวอย่างนี้ เราดึงข้อมูลแต่ละโทเค็นเหมือนเมื่อก่อน แต่ยังใช้ วิธี length()เพื่อรับความยาวของแต่ละโทเค็น ซึ่งเราจะพิมพ์ไปยังคอนโซล

ตัวอย่าง

ลองมาดูตัวอย่างที่สมบูรณ์ที่สาธิตวิธีการใช้ คลาส StringTokenizerใน Java:

public class Example {
    public static void main(String[] args) {
        String input = "John,Doe,123 Main St.,Anytown,USA";
        StringTokenizer tokenizer = new StringTokenizer(input, ",");
        while (tokenizer.hasMoreTokens()) {
            System.out.println(tokenizer.nextToken());
        }
    }
}

เอาท์พุต

John Doe 123 Main St. Anytown สหรัฐอเมริกา
ในตัวอย่างนี้ เรามีสตริงที่แสดงรายการค่าที่คั่นด้วยเครื่องหมายจุลภาค เราสร้าง วัตถุ StringTokenizer ใหม่ โดยใช้สตริงนี้และเครื่องหมายจุลภาคเป็นตัวคั่น จากนั้นเราจะวนซ้ำโทเค็นโดยใช้ วิธี hasMoreTokens()และดึงข้อมูลแต่ละโทเค็นโดยใช้วิธีnextToken() ในที่สุด เราก็พิมพ์แต่ละโทเค็นไปยังคอนโซล โปรดทราบว่าเราไม่ได้ใช้ เมธอด length()ในตัวอย่างนี้ เนื่องจากเราสนใจเฉพาะโทเค็นแต่ละรายการเท่านั้น

คลาส StreamTokenizer

แม้ว่า คลาส StringTokenizerจะให้วิธีง่ายๆ ในการแบ่งสตริงออกเป็นโทเค็น แต่ก็มีข้อจำกัดบางประการ ตัวอย่างเช่น ไม่สามารถจัดการตัวคั่นหลายตัวหรือโทเค็นประเภทต่างๆ ได้ เช่น ตัวเลขและคำ หากคุณต้องการความสามารถด้านโทเค็นขั้นสูงเพิ่มเติม คุณสามารถใช้คลาสStreamTokenizer ได้ คลาสนี้ให้ความยืดหยุ่นมากกว่าและสามารถรองรับอินพุตประเภทต่างๆ ได้ เพื่อเสริมสิ่งที่คุณเรียนรู้ เราขอแนะนำให้คุณชมบทเรียนวิดีโอจากหลักสูตร Java ของเรา

บทสรุป

ในบทความนี้ เราได้สำรวจ คลาส StringTokenizerใน Java และดูว่าสามารถใช้เพื่อแยกสตริงออกเป็นโทเค็นได้อย่างไร นอกจากนี้เรายังได้เห็นวิธีการใช้วิธีการบางอย่างของคลาสเพื่อดำเนินการต่างๆ บนโทเค็น เช่น การรับความยาวและการดึงโทเค็นเฉพาะตามดัชนี แม้ว่า คลาส StringTokenizerจะเป็นเครื่องมือที่เรียบง่ายและมีประโยชน์ แต่ก็มีข้อจำกัด หากคุณต้องการความสามารถด้านโทเค็นขั้นสูงเพิ่มเติม ให้พิจารณาใช้ คลาส StreamTokenizerหรือไลบรารีที่มีประสิทธิภาพมากกว่า เช่น Apache Commons Lang อย่าลืมคำนึงถึงความต้องการเฉพาะของโครงการของคุณเสมอเมื่อตัดสินใจว่าจะใช้เครื่องมือและเทคนิคใด ด้วยความเข้าใจที่ชัดเจนเกี่ยวกับคลาสและวิธีการจัดการสตริงของ Java คุณสามารถจัดการแม้แต่งานการจัดการสตริงที่ซับซ้อนที่สุดได้อย่างง่ายดาย
ความคิดเห็น
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION