5.00 / 1 oy

Java'da String'in son karakterini silmek ya da değiştirmek

Önceki soruda trim ve split fonksiyonlarını birleştirerek String bir metni bir vektöre dönüştürmüştük ama en sonda for döngüsünden kalan bir "-" karakterini de istemeden çıktı almıştık. Şimdi de bir yazının sadece sonunda bulunan istenmeyen bir karakteri nasıl kaldırabileceğimize bakalım.

Java yerine C# kullanıyor olsaydık String.Trimend() fonksiyonu ile en sonda yer almasını istemediğimiz bir karakteri herhangi bir algoritma kodlamaya gerek duymadan kaldırabilirdik ama Java'da TrimEnd() adında bir fonksiyon hazır olarak gelmediği için bu işlemi kendimiz kodlamamız gerekiyor. Yine senaryoları inceleyerek farklı durumlar için gerekli fonksiyonlarımızı hazırlayalım:

Senaryo 1: Java'da String'in en sonundaki karakter ne olursa olsun kaldırmak:

Bu işlem için charAt ya da substring fonksiyonlarını kullanabiliriz ve karakter sayısına göre en sondaki karakteri bulabiliriz. Ya da daha ileride görebileceğimiz gibi regex doğrulaması yapabiliriz. Şimdilik substring ile bir çözüm üretelim:

String futbolcular="STUMPF-BÜLENT-LJUNG-FALCO-TUGAY-OKAN-HAMZA-SUAT-KUBILAY-";
futbolcular = futbolcular.substring(0, futbolcular.length() - 1);
System.out.println(futbolcular); //STUMPF-BÜLENT-LJUNG-FALCO-TUGAY-OKAN-HAMZA-SUAT-KUBILAY

Bu çözümde birkaç problem var. Birincisi sıklıkla kullanılması muhtemel bu işlevi fonksiyon olarak kodlamak gerek. İkincisi futbolcular String'i null ya da sıfır karakterli olursa ne olacak? O zaman doğrulamalarla birlikte bu sefer bir metod olarak tekrar hazırlayalım:

public static void main(String [] args) {
    String futbolcular="STUMPF-BÜLENT-LJUNG-FALCO-TUGAY-OKAN-HAMZA-SUAT-KUBILAY-";
 
    System.out.println(SonHarfiSil(futbolcular)); //STUMPF-BÜLENT-LJUNG-FALCO-TUGAY-OKAN-HAMZA-SUAT-KUBILAY
}
public static String SonHarfiSil (String girdi)
{	 
 if (girdi != null && girdi.length() > 0) 
	 girdi = girdi.substring(0, girdi.length() - 1);
 
 return girdi;
}

Senaryo 2: Java'da String'in en sonundaki karakter belli bir karakter ise kaldırmak:

Kaldığımız yerden metoda devam edelim ve "eğer son karakter istemediğimiz karakter ise" şartı da ekleyerek güncelleyelim. Eğer işlemlerimizi doğru yaptık ise son karakteri '-' olan futbolcular1 değişkeni için bu fonksiyonu uyguladığımızda son karakterin silinmesi gerekirken futbolcular2 değişkeninde ise hiçbir değişiklik olmamalı:

public static void main(String [] args) {
	    
		 String futbolcular1="STUMPF-BÜLENT-LJUNG-FALCO-TUGAY-OKAN-HAMZA-SUAT-KUBILAY-";
		 String futbolcular2="STUMPF-BÜLENT-LJUNG-FALCO-TUGAY-OKAN-HAMZA-SUAT-KUBILAY";
		 
		 System.out.println(SonHarfiSil(futbolcular1, '-')); //STUMPF-BÜLENT-LJUNG-FALCO-TUGAY-OKAN-HAMZA-SUAT-KUBILAY
		 System.out.println(SonHarfiSil(futbolcular2, '-')); //STUMPF-BÜLENT-LJUNG-FALCO-TUGAY-OKAN-HAMZA-SUAT-KUBILAY
}

 public static String SonHarfiSil (String girdi, Character Karakter)
 {	 
	 if (girdi != null && girdi.length() > 0  && girdi.charAt(girdi.length() - 1) == Karakter) 
		 girdi = girdi.substring(0, girdi.length() - 1);
	 
	 return girdi;
 }

Sonuç: Kendi TrimdEnd fonksiyonumuzu 2 farklı şekilde yazmış olduk.

Edit: Bu örneğin değiştirilmiş bir versiyonu şu şekilde: Java'da String'in en sonundaki karakter belli bir yazı ise kaldırmak

utku33

13.01.2020 03:13

Bu soru henüz yanıtlanmamış.

Bu soruya sadece kayıtlı kullanıcılar yanıt yazabilirler. Yanıt yazmak için lütfen giriş yapınız.

Reitix
Java'da String'in son karakterini silmek ya da değiştirmek

İnternet sitemizdeki deneyiminizi iyileştirmek için çerezler kullanıyoruz. Bu siteye giriş yaparak çerez kullanımını kabul etmiş sayılıyorsunuz. Daha fazla bilgi.