Bir yazıdaki harfleri, boşlukları ve sayıları saydıran Java programını kodladıktan sonra elbette arkasından gelmesi gereken örnek, bir cümlede (bir yazı diyelim çünkü birden çok cümle de olabilir) kaç tane kelime bulunduğunu saydıran Java programını kodlamak olmalıydı. Peki karakterleri saydırmak için String içerisindeki her bir harfi ilgili metodları kullanarak teker teker saydırma çözümümüz kelimeleri saydırırken de işimize yarayacak mı? Bunun için daha karmaşık bir algoritma kurulması gerektiği için maalesef yaramayacak. Bunun daha basit bir yöntemi olmalı, bu da kelime dediğimiz öbekleri birbirinden ayıran şeyin ne olduğunu fark etmek: boşluklar (whitespace). O zaman tek yapmamız gerken, regex kullanarak String'i dizi elemanlarına bölmek ve bu dizinin kaç elemandan oluştuğunu saydırmak.
Kodlar:
Scanner girdi=new Scanner(System.in);
System.out.println("Lütfen bir yazı yazın");
String yazi=girdi.nextLine();
int kelimeSayisi;
if (yazi == null || yazi.isEmpty())
kelimeSayisi=0;
else
{
String[] kelimeler = yazi.split("\\s+");
kelimeSayisi = kelimeler.length;
}
System.out.println("Kelime sayısı: " + kelimeSayisi);
Çıktı:
Lütfen bir yazı yazın
> java en geçerli programlama dili midir bu bence hatalı bir soru çünkü önemli olan algoritma mantığını anlamaktır.
Kelime sayısı: 17