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 dizgeyi bir ayırıcıya dayalı olarak belirteçlere (daha küçük parçalara) ayırmak için kullanılır. Varsayılan olarak, boşluk karakterini ayırıcı olarak kullanır.

Varsayılan ayırıcı (boşluk) ile bir StringTokenizer oluşturun:

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

Token say ve al:

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

Yukarıdaki kodu çalıştırdıktan sonra, değişkenler şunları içerir:

count: 3
first: "Hello"

nextToken()'u çağırdığınızda, o token'ı tokenizer'dan kaldırır. countTokens() metodu, kalan token'ların sayısını döndürür.

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

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

st.nextToken();  // "World" tüketir
System.out.println(st.countTokens());  // Yazdı: 1

İpucu: Toplam token sayısını bilmek istiyorsanız, herhangi bir token tüketmeden önce countTokens() çağırın. Yineleme sırasında daha fazla tokenin mevcut olup olmadığını kontrol etmek için hasMoreTokens() kullanın.

challenge icon

Görev

Kolay

tokenizeText adında bir metot oluşturun ki iki argüman alsın:

  1. Tokenize edilecek bir String (text)
  2. Ayrıştırmak için bir String (delimiter)

Metot şunu yapmalı:

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

Dönüş mesajları şöyle olmalı:

  • Eğer text null ise: return "Invalid text"
  • Eğer delimiter null ise: use space as delimiter
  • Format: "Token count: X\nToken: token1\nToken: token2\n..."

Kopya kağıdı

StringTokenizer bir dizeyi, bir ayırıcıya göre belirteçlere (daha küçük parçalara) ayırır. Varsayılan olarak, boşluk karakterini ayırıcı olarak kullanır.

Varsayılan ayırıcı (boşluk) ile bir StringTokenizer oluşturun:

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

Belirteçleri sayın ve alın:

int count = st.countTokens();  // Belirteç sayısını alır
String first = st.nextToken(); // Sonraki belirteci alır

Özel ayırıcı ile StringTokenizer oluşturun:

StringTokenizer st = new StringTokenizer(text, delimiter);

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

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

st.nextToken();  // "Hello" tüketir
System.out.println(st.countTokens());  // Yazar: 2 (3 değil!)

st.nextToken();  // "World" tüketir
System.out.println(st.countTokens());  // Yazar: 1

İpucu: Toplam belirteç sayısını bilmek istiyorsanız, herhangi bir belirteç tüketmeden önce countTokens() çağırın. Yineleme sırasında daha fazla belirteç olup olmadığını kontrol etmek için hasMoreTokens() kullanın.

Kendin dene

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

public class Main {
    public static String tokenizeText(String text, String delimiter) {
        // Buraya kodunuzu 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