Menu
CoddyTech

String Tokenizer

Termasuk bagian Logika & Alur dalam perjalanan Java di Coddy. Pelajaran 48 dari 59.

StringTokenizer digunakan untuk memecah string menjadi token (bagian yang lebih kecil) berdasarkan pembatas. Secara default, alat ini menggunakan spasi kosong sebagai pembatas.

Buat StringTokenizer dengan pemisah default (spasi):

StringTokenizer st = new StringTokenizer("Hello World Java");

Untuk memisahkan berdasarkan karakter lain, berikan karakter tersebut sebagai argumen kedua. Setiap karakter dalam string tersebut menjadi pemisah tersendiri:

StringTokenizer st = new StringTokenizer("one,two;three", ",;");
System.out.println(st.countTokens());  // Mencetak: 3

Hitung dan ambil token:

int count = st.countTokens();
// Mengambil jumlah token
String first = st.nextToken();
// Mengambil token berikutnya

Setelah menjalankan kode di atas, variabel berisi:

count: 3
first: "Hello"

Penting: Token akan digunakan!

Ketika kamu memanggil nextToken(), token tersebut dihapus dari tokenizer. method countTokens() mengembalikan jumlah token yang tersisa.

StringTokenizer st = new StringTokenizer("Hello World Java");
System.out.println(st.countTokens());  // Mencetak: 3

st.nextToken();  // Mengambil "Hello"
System.out.println(st.countTokens());  // Mencetak: 2 (bukan 3!)

st.nextToken();  // Mengambil "World"
System.out.println(st.countTokens());  // Mencetak: 1

Petunjuk: Jika kamu perlu mengetahui jumlah total token, panggil countTokens() sebelum menggunakan token apa pun. Gunakan hasMoreTokens() untuk memeriksa apakah masih ada token yang tersedia saat melakukan perulangan.

challenge icon

Tantangan

Mudah

Buat method bernama tokenizeText yang menerima dua argumen:

  1. String (text) untuk di-tokenisasi
  2. String (delimiter) sebagai pemisah

Method tersebut harus:

  1. Membuat StringTokenizer dengan teks dan delimiter yang diberikan
  2. Mengembalikan string yang berisi jumlah token, diikuti setiap token pada baris baru

Pesan yang dikembalikan harus berupa:

  • Jika text null: kembalikan "Invalid text"
  • Jika delimiter null: gunakan spasi sebagai delimiter
  • Format: "Token count: X\nToken: token1\nToken: token2\n..."

Coba sendiri

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

public class Main {
    public static String tokenizeText(String text, String delimiter) {
        // Tulis kodemu di sini
    }
    
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        String text = scanner.nextLine();
        String delimiter = scanner.nextLine();
        
        if (text.equals("null")) text = null;
        if (delimiter.equals("null")) delimiter = null;
        
        System.out.println(tokenizeText(text, delimiter));
    }
}
quiz iconUji dirimu

Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.

Semua pelajaran di Logika & Alur

Latihan sendiri: Compiler Java online