Menu
Coddy logo textTech

Dize Ayrıştırıcısı

Coddy'nin Java Journey'sinin Mantık & Akış bölümünün bir parçası — ders 48 / 59.

StringTokenizer, bir dizeyi bir sınırlayıcıya (delimiter) dayalı olarak belirteçlere (daha küçük parçalara) ayırmak için kullanılır. Varsayılan olarak, sınırlayıcı olarak boşluk karakterini kullanır.

Varsayılan sınırlayıcı (boşluk) ile bir StringTokenizer oluşturun:

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

Tokenları sayın ve alın:

int count = st.countTokens();
// Token sayısını alır
String first = st.nextToken();
// Bir sonraki tokenı alır

Yukarıdaki kodu yürüttükten sonra, değişkenler şunları içerir:

count: 3
first: "Hello"

Önemli: Tokenlar tüketilir!

nextToken() metodunu çağırdığınızda, bu belirteci (token) tokenizer'dan kaldırır. countTokens() metodu kalan belirteçlerin sayısını döndürür.

StringTokenizer st = new StringTokenizer("Hello World Java");
System.out.println(st.countTokens());  // Şunu yazdırır: 3

st.nextToken();  // "Hello" değerini tüketir
System.out.println(st.countTokens());  // Şunu yazdırır: 2 (3 değil!)

st.nextToken();  // "World" değerini tüketir
System.out.println(st.countTokens());  // Şunu yazdırır: 1

İpucu: Toplam token sayısını bilmeniz gerekiyorsa, herhangi bir token tüketmeden önce countTokens() işlevini çağırın. Yineleme yaparken daha fazla token olup olmadığını kontrol etmek için hasMoreTokens() işlevini kullanın.

challenge icon

Görev

Kolay

İki argüman alan tokenizeText adında bir metot oluşturun:

  1. Tokenize edilecek bir String (text)
  2. Bölmek için kullanılacak bir String (delimiter)

Metot şunları yapmalıdır:

  1. Verilen metin ve sınırlayıcı ile bir StringTokenizer oluşturun
  2. Token sayısını ve ardından her bir token'ı yeni bir satırda içeren bir dize döndürün

Dönüş mesajları şu şekilde olmalıdır:

  • Eğer text null ise: "Invalid text" döndürün
  • Eğer delimiter null ise: sınırlayıcı olarak boşluk kullanın
  • Format: "Token count: X\nToken: token1\nToken: token2\n..."

Kendin dene

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

public class Main {
    public static String tokenizeText(String text, String delimiter) {
        // Kodunuzu buraya yazın
    }
    
    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 iconKendini test et

Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.

Mantık & Akış bölümündeki tüm dersler