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 göre belirteçlere (daha küçük parçalara) ayırmak için kullanılır. Varsayılan olarak, sınırlayıcı olarak boşluk karakterlerini 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ırYukarıdaki kodu yürüttükten sonra, değişkenler şunları içerir:
count: 3
first: "Hello"Önemli: Tokenlar tüketilir!
nextToken() çağrıldığında, bu 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()); // Yazdırır: 3
st.nextToken(); // "Hello" tüketir
System.out.println(st.countTokens()); // Yazdırır: 2 (3 değil!)
st.nextToken(); // "World" tüketir
System.out.println(st.countTokens()); // Yazdırır: 1İpucu: Toplam belirteç sayısını bilmeniz gerekiyorsa, herhangi bir belirteci tüketmeden önce countTokens() işlevini çağırın. Yineleme sırasında kullanılabilecek başka belirteçler olup olmadığını kontrol etmek için hasMoreTokens() işlevini kullanın.
Görev
KolaytokenizeText adlı ve iki bağımsız değişken alan bir yöntem oluşturun:
- Token'lara ayrılacak bir String (
text) - Bölme işlemi için kullanılacak bir String (
delimiter)
Yöntem şunları yapmalıdır:
- Verilen metin ve sınırlayıcıyla bir StringTokenizer oluşturun
- Token sayısını ve ardından her token'ı yeni bir satırda içeren bir string döndürün
Döndürülecek mesajlar şöyle olmalıdır:
- text null ise: "Invalid text" döndürün
- delimiter null ise: sınırlayıcı olarak boşluk kullanın
- Biçim: "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));
}
}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
1Çok Boyutlu Diziler
2D Diziler Temelleri2D Dizi Elemanlarına Erişim2D Dizilerle İç İçe DöngülerÖzet - 2D DizilerMatris Toplama ve ÇıkarmaJagged Diziler3D Diziler ve ÖtesiYaygın 2D Dizi DesenleriÖzet - Diziler Hakkında Her Şey2HashMap Bölüm 1
HashMap Nedir?HashMap TanımlamaDeğerlere ErişimAnahtarın Varlığını Kontrol EtmeSözlükleri DeğiştirmeÖzet - HashMap5HashSet Kısım 2
Matematik - HashSet'lerin BirliğiMatematik - HashSet KesişimiMatematik - Küme FarkıMatematik - Simetrik FarkAlt Kümeler ve Üst KümelerKümeler Üzerinde Yineleme8Gelişmiş Dize İşlemleri
StringBuilder TemelleriStringBuffer'e GirişDüzenli İfadeler TemelleriRegex ile Desen EşleştirmeDize AyrıştırıcısıGelişmiş Dize Biçimlendirme3HashMap Bölüm 2
HashMap YöntemlerikeySet() ile YinelemeentrySet() ile Yinelemeİç İçe HashMapÖzet - Depo YönetimiÖzet - HashMap İşlemleri6İleri Akış Kontrolü
Etiketli İfadelerSwitch İfadesiDesen EşleştirmeKoruyucu Yan CümlelerÖzet - Akış Kontrolü9Proje - Benzersiz Kelime Sayacı
Metin Girişi ve DepolamaKelime İşlemeKendi başına pratik yap: Online Java derleyicisi