Java

Java’da String Bölme

Bazen programlamada bir dizeyi ayırmamız gerekir. Java dilinde String.split(), StringTokenizer ve Pattern.compile() yöntemlerini öneriyoruz.

Java’da Dizeyi Bölme

Program javada derlenip çalıştırıldığında aşağıdaki gibi olacaktır.

Java String.split() ile Bölme

String.split() yöntemi, belirli bir dizeyi verilen normal ifadenin eşleşmeleri etrafında kırar. Java’da split() yönteminin iki çeşidi vardır:

  • public String split(genel regex)
    Bu yöntem, normal bir ifadeyi parametre olarak alır ve verilen dizeyi bu normal ifade normal ifadesinin eşleşmeleri etrafında kırar. Varsayılan olarak sınır 0’dır.
    Bunun için parametre: regex (sınırlayıcı düzenli ifade).
    Verilen dizeyi bölerek hesaplanan bir dizeler dizisi döndürür.
  • public String split (Dize normal ifadesi, int sınırı)
    Bunun için parametreler şunlardır: regex (sınırlayıcı düzenli ifade) ve limit (desenin uygulanma sayısını kontrol eder ve bu nedenle sonuçta oluşan dizinin uzunluğunu etkiler).
    Bu, bu dizeyi verilen normal ifadenin eşleşmelerine bölerek sayılan dizeler dizisini döndürür.
Çıktı:
 
Not: Başka bir çıktı elde etmek için normal ifadeyi ve sınırı değiştirin: ör. (“”, 2) – sonuç şu şekilde olacaktır:
 

Java StringTokenizer Kullanımı

Java’da dize belirteçleri, dizeyi belirteçlere bölmeye izin verir. Dize nesnesinin içindeki belirteç sayısını da alabilirsiniz.

Çıktı:

Not: Dizeyi bölmek için kullanılan ayırıcıyı belirtebilirsiniz. Yukarıdaki örnekte, sınırlayıcıyı boşluk (”) olarak ayarladık.

StringTokenizer’ı birden çok sınırlayıcı ile kullanmak da mümkündür.

Çıktı:

Java Pattern.compile() Kullanımı

Bu yöntem, verilen girdi dizisini kalıp eşleşmelerine böler. Bunun için parametre: giriş – bölünecek karakter dizisi.

Girdiyi kalıbın eşleşmeleri etrafında bölerek hesaplanan dizeler dizisini döndürür.

Çıktı:

3 Yorum

Yorum yapmak için tıklayın

  • Merhabalar;
    Aşağıdaki kod ile ad soyad ayırma yapılıyor
    bu koddan daha pratik bir kod önerebilir misiniz.

    public class Main {
    public int a;
    public static void main(String[] args) {

    String s = “Sedat Can “;
    String s1 = ” Halil İbrahim Yıldırım “;
    String s2 = “Hakan Gül Sağlam”;

    adSoyad(s);
    adSoyad(s1);
    adSoyad(s2);

    }

    public static void adSoyad(String s){

    int i;
    int uzunluk;
    String[] s1;

    String s2 = s.trim().replaceAll(“\\s+”, ” “);

    uzunluk = s2.length()-s2.replaceAll(” “, “”).length();

    if (uzunluk>1)
    {
    i = s2.indexOf(” “,s2.indexOf(” “, 1)+1);
    }else if (uzunluk==1)
    {
    i = s2.indexOf(” “);
    }else
    {
    i =0;
    }

    if (i>0)
    {
    s1 = s2.replaceAll(s2.substring(i), (“#@@#”)+s2.substring(i)).split(“#@@# “);
    }else s1 = s2.replaceAll(s2.substring(i), s2.substring(i)).split(” “);

    for (String string : s1) {

    System.out.println(string);
    }

    }

    }

    • Muhtemelen bu işini görecektir diye düşünüyorum.
      import java.util.ArrayList;
      public class JavaOrnekleri {
      public static void main(String[] args) {

      ArrayList isimler = new ArrayList();
      isimler.add(“Sedat Can “);
      isimler.add(” Halil İbrahim Yıldırım “);
      isimler.add(” Hakan Gül Sağlam”);

      isimler.forEach((n)->{
      String adSoyad = n.trim();
      int index =adSoyad.lastIndexOf(” “);
      String ad = adSoyad.substring(0, index);
      String soyad = n.trim().substring(index+1, adSoyad.length());

      System.out.println(“Ad:”+ad);
      System.out.println(“Soyad:”+soyad);
      });

      }
      }