Tutorial

Java 101 - StringTokenizer (EP.พิเศษ เพราะคนเขียนอยากเขียน)

By Arnon Puitrakul - 01 มกราคม 2015

Java 101 - StringTokenizer (EP.พิเศษ เพราะคนเขียนอยากเขียน)

อันนี้อยากเขียนเป็นพิเศษ ไม่มีอะไรมาก อยากเขียนเฉยๆ OK เข้าใจตรงกันนะ
มาเข้าเรื่องกันเลยดีกว่า StringTokenizer มันจะทำหน้าที่ในการแบ่ง String ออกเป็นส่วนๆตามที่เราบอกมัน โดยมันจะอยู่ใน Package java.util.StringTokenizer
วิธีใช้คือ ต้องสร้าง Object StringTokenizer ขึ้นมาก่อน ก็ปกติเลย

StringTokenizer st = new StringTokenizer (String,delim);

โดยที่ String ก็คือข้อความที่เราต้องการแยกมัน ส่วน delim คือเครื่องหมาย หรือสัญลักษณ์ที่ใช้แยก เช่น (,) , (?) , (.) เป็นต้น (จริงๆแล้วถ้าเราใช้ Space ในการแยก ไม่จำเป็นต้องใส่ delim ก็ได้นะ)
เรามาลองใช้กันดีกว่า เราจะให้ User ป้อนข้อความเข้ามา แล้วให้มันแยกด้วย ช่องว่างกันดีกว่า

import java.util.Scanner;
import java.util.StringTokenizer;

ก่อนอื่นเราก็import library เข้ามาก่อน

Scanner sc = new Scanner (System.in);
String in_str = sc.nextLine();

หลังจากนั้นก็สร้าง Object Scanner และ สร้าง String ให้มันรับค่า String มาจาก User

StringTokenizer st = new StringTokenizer (in_str);

เสร็จแล้วเราก็สร้าง StringTokenizer ขึ้นมา ใส่ Constructor เป็น String ที่เรา Input เข้าไป
ถัดมาเราจะมาดูเรื่องของ Method ของมันกันบ้าง

  • countTokens() - เอาไว้นับว่าใน String ที่เราให้มันไปมันจะตัดออกมาได้กี่อัน

  • hasMoreTokens() - เอาไว้เช็คว่า Token ถัดไปเป็น String ว่างรึยัง เหมือนกับเช็คว่ามีต่อมั้ย

  • nextToken() - จะใช้ดึง Token ถัดไปออกมา
    เราจะเอามันมาใช้กัน

    System.out.println("This String Can Sperate into : " + st.countTokens() + " Tokens");

    while (st.hasMoreTokens())
    {
    System.out.println(st.nextToken());
    }

ตอนแรกก็ให้มันโชว์ก่อนว่า ใน String ที่เรา Input เข้าไปมันจะแยกออกมาได้กี่อัน ถัดมาก็ใส่ Loop ไปจนกว่าจะหมด String และในลูปก็ในมันโชว์ทีล่ะ Token ออกมา
จบและเห็นม่ะ ไม่ยากเลย แค่สร้าง Object ออกมาแล้วเรียก Method ออกมาจัดการกับมัน
**Source Code : **https://drive.google.com/folderview?id=0BwrPA9Miv4o2NTNuT015RGNOU0E&usp=sharing

Read Next...

จัดการข้อมูลบน Pandas ยังไงให้เร็ว 1000x ด้วย Vectorisation

จัดการข้อมูลบน Pandas ยังไงให้เร็ว 1000x ด้วย Vectorisation

เวลาเราทำงานกับข้อมูลอย่าง Pandas DataFrame หนึ่งในงานที่เราเขียนลงไปให้มันทำคือ การ Apply Function เข้าไป ถ้าข้อมูลมีขนาดเล็ก มันไม่มีปัญหาเท่าไหร่ แต่ถ้าข้อมูลของเราใหญ่ มันอีกเรื่องเลย ถ้าเราจะเขียนให้เร็วที่สุด เราจะทำได้โดยวิธีใดบ้าง วันนี้เรามาดูกัน...

ปั่นความเร็ว Python Script เกือบ 700 เท่าด้วย JIT บน Numba

ปั่นความเร็ว Python Script เกือบ 700 เท่าด้วย JIT บน Numba

Python เป็นภาษาที่เราใช้งานกันเยอะมาก ๆ เพราะความยืดหยุ่นของมัน แต่ปัญหาของมันก็เกิดจากข้อดีของมันนี่แหละ ทำให้เมื่อเราต้องการ Performance แต่ถ้าเราจะบอกว่า เราสามารถทำได้ดีทั้งคู่เลยละ จะเป็นยังไง เราขอแนะนำ Numba ที่ใช้งาน JIT บอกเลยว่า เร็วขึ้นแบบ 700 เท่าตอนที่ทดลองกันเลย...

Humanise the Number in Python with "Humanize"

Humanise the Number in Python with "Humanize"

หลายวันก่อน เราทำงานแล้วเราต้องการทำงานกับตัวเลขเพื่อให้มันอ่านได้ง่ายขึ้น จะมานั่งเขียนเองก็เสียเวลา เลยไปนั่งหา Library มาใช้ จนไปเจอ Humanize วันนี้เลยจะเอามาเล่าให้อ่านกันว่า มันทำอะไรได้ แล้วมันล่นเวลาการทำงานของเราได้ยังไง...

ทำไม 0.3 + 0.6 ถึงได้ 0.8999999 กับปัญหา Floating Point Approximation

ทำไม 0.3 + 0.6 ถึงได้ 0.8999999 กับปัญหา Floating Point Approximation

การทำงานกับตัวเลขทศนิยมบนคอมพิวเตอร์มันมีความลับซ่อนอยู่ เราอาจจะเคยเจอเคสที่ เอา 0.3 + 0.6 แล้วมันได้ 0.899 ซ้ำไปเรื่อย ๆ ไม่ได้ 0.9 เพราะคอมพิวเตอร์ไม่ได้มองระบบทศนิยมเหมือนกับคนนั่นเอง บางตัวมันไม่สามารถเก็บได้ เลยจำเป็นจะต้องประมาณเอา เราเลยเรียกว่า Floating Point Approximation...