Java String'de (karakter dizisi) boşluk,sekme,yeni satır,karakter silme ve değiştirme

Java replace and remove space,tab,new line,character code usage example in String:

Javada kullanacağınız bir String ifadenin içerisindeki boşluk, sekme ve yeni satır gibi ifadeleri silmek veya değiştirme operasyonu yapmak isterseniz aşağıdaki örneklerdeki size uygun olan çeşitli yolları kullanabilirsiniz.

Kullanacağımız Java özellikleri şunlardır.
.replaceAll() – regex ifadesi ile eşleşen tüm ifadelerin yerine yeni atanacak karakter veya kelimeyi yerleştirir.
.replace() – tüm eşleşen karakterlerin veya kelimelerin yerine yeni atanacak karakter veya kelimeyi yerleştirir.
.trim() – başlangıç ve bitişteki boşlukları siler.

Öncelikle birden fazla boşluk ya da hem boşluk hem de sekme ifadesiyle gelen bir string de yanyana her bulunan boşluk,sekme ve yeni satır gibi ifade topluluklarını sadece bir boşluklu göstermek için “replaceAll” özelliğini regex ile kullanabiliriz.

String strWithSpaceTabNewline = " abc def ghi jkl\n\n\n"
+ "mno ";
String formattedStr01 = strWithSpaceTabNewline.replaceAll("\\s"," ");
System.out.println(":" + formattedStr01 + ":");

Elde edeceğimiz sonuç şu şekilde olacaktır. Görüldüğü gibi birden fazla olan beyaz boşluklar tek boşluğa çevrildi.

: abc def ghi jkl mno :

veya bütün boşlukları silmek için ise aşağıdaki kod bloğunda olduğu gibi bir işlem yapabilirsiniz.

String strWithSpaceTabNewline = " abc def ghi jkl\n\n\n"
+ "mno ";
String formattedStr01 = strWithSpaceTabNewline.replaceAll("\\s","");
System.out.println(":" + formattedStr01 + ":");

Elde edeceğimiz sonuç şu şekilde olacaktır. Görüldüğü gibi birden fazla olan beyaz boşlukların hepsi silindi.

:abcdefghijklmno:

Şimdi ise bütün boşluk ve sekme ifadelerinin aşağıdaki gösterilen şekilde silebiliriz.

String strWithSpaceTabNewline = " abc def ghi jkl\n\n\n"
+" mno ";
String formattedStr02 = strWithSpaceTabNewline.replace(" ","");
System.out.println(":" + formattedStr02 + ":");

Sonucumuz şöyle olacaktır. Burda yeni satır(enter) ifadesi işleme alınmamış sadece boşluk ve sekme gibi beyaz boşluk karakterleri silinmiştir. .replace(” “,””) metodundaki 2. parametreye başka bir ifade de ekleyebilir ve bütün boşluk ve sekmeleri bu ifade ile değiştirebilirsiniz.

:abcdefghijkl

mno:

Karakter silmek için ise “replace” kullanımı aşağıdadır.

String strWithSpaceTabNewline = " abc def ghi \n\n\n"
+ "jkl mno";
String formattedStr03 = strWithSpaceTabNewline.replace("n","");
System.out.println(":" + formattedStr03 + ":");

Sonucumuz aşağıdadır.”n” karakterini String ifademizden silmiş olduk.

: abc def ghi

jkl mo:

String ifademizin başındaki ve sonundaki boşluk, sekme ve yeni satır ifadelerini silmek için ise “trim” özelliğini kullanacağız.

String strWithSpaceTabNewline = " abc def ghi jkl \n\n"
+" mno \n ";
String formattedStr04 = strWithSpaceTabNewline.trim();
System.out.println(":" + formattedStr04 + ":");

Sonucumuz ise şöyledir. Size gelmiş olan String ifadenin başında veya sonundaki beyaz boşluk karakterleri temizlenmiş oldu.

:abc def ghi jkl

mno:

Ve son olarak ise String ifade de karakter dizisi değiştirmek için replace özelliğini kullanabilirsiniz.Kelime içinde de olsa tek başına kelimede olsa bütün eşlenen kelimeler değiştirilir.

String replacingString = "def def mydef adfgdefdsfa";
replacingString = replacingString.replace("def", "xyz");
System.out.println(":" + replacingString + ":");

Sonuç aşağıdaki gibi olacaktır.
[code language=”java”]:xyz xyz myxyz adfgxyzdsfa:[/code]

:xyz xyz myxyz adfgxyzdsfa:

Telefon numarası maskelemek için:

mobile.replace("\\d(?=(?:\\D*\\d){2})", "*"));
input:+90 511 123 45-67
output:+** *** *** **-67

Bunların dışında Apache Commons Lang3 StringUtils kütüphanesi ile ise aşağıdaki gibi kullanımı gerçekleştirebilirsiniz.
replace(String text, String searchString, String replacement)
Replaces all occurrences of a String within another String.

replace(String text, String searchString, String replacement, int max)
Replaces a String with another String inside a larger String, for the first max values of the search String.

replaceChars(String str, char searchChar, char replaceChar)
Replaces all occurrences of a character in a String with another.

replaceChars(String str, String searchChars, String replaceChars)
Replaces multiple characters in a String in one go.

replaceEach(String text, String[] searchList, String[] replacementList)
Replaces all occurrences of Strings within another String.

replaceEachRepeatedly(String text, String[] searchList, String[] replacementList)
Replaces all occurrences of Strings within another String.

replaceIgnoreCase(String text, String searchString, String replacement)
Case insensitively replaces all occurrences of a String within another String.

replaceIgnoreCase(String text, String searchString, String replacement, int max)
Case insensitively replaces a String with another String inside a larger String, for the first max values of the search String.

replaceOnce(String text, String searchString, String replacement)
Replaces a String with another String inside a larger String, once.

replaceOnceIgnoreCase(String text, String searchString, String replacement)
Case insensitively replaces a String with another String inside a larger String, once.

veya Regex kullanımı için Apache Commons Lang3 RegExUtils kütüphanesi ile aşağıdaki gibi kullanımları gerçekleştirebilirsiniz

removeAll(String text, Pattern regex)
Removes each substring of the text String that matches the given regular expression pattern.

removeAll(String text, String regex)
Removes each substring of the text String that matches the given regular expression.

removeFirst(String text, Pattern regex)
Removes the first substring of the text string that matches the given regular expression pattern.

removeFirst(String text, String regex)
Removes the first substring of the text string that matches the given regular expression.

removePattern(String text, String regex)
Removes each substring of the source String that matches the given regular expression using the DOTALL option.

replaceAll(String text, Pattern regex, String replacement)
Replaces each substring of the text String that matches the given regular expression pattern with the given replacement.

replaceAll(String text, String regex, String replacement)
Replaces each substring of the text String that matches the given regular expression with the given replacement.

replaceFirst(String text, Pattern regex, String replacement)
Replaces the first substring of the text string that matches the given regular expression pattern with the given replacement.

replaceFirst(String text, String regex, String replacement)
Replaces the first substring of the text string that matches the given regular expression with the given replacement.

replacePattern(String text, String regex, String replacement)
Replaces each substring of the source String that matches the given regular expression with the given replacement using the Pattern.DOTALL option.

6 thoughts on “Java String'de (karakter dizisi) boşluk,sekme,yeni satır,karakter silme ve değiştirme

  1. String line = “çivi 6 7”;
    String yeni = line.replaceAll(“\\s”,” “);
    System.out.println(yeni);
    diyorum amacım tek boşluklu hale getirmek ama hiçbirşey değişmiyor aynı sonucu veriyor yardım ederseniz sevinirim.

    1. Merhaba,
      Zaten yanyana olan birden fazla boşluk mevcut değil. Bu işlem yanyana olan birden fazla beyaz boşluk karakterlerini teke düşürür.
      Mesela String line = “çivi 6 7 8”; örneği için çalıştırırsak elde edeceğimiz sonuç 7 ve 8 arasındaki birden fazla olan boşluk sayısı teke düşer.

  2. Merhaba sevgili hocam sitenizi analiz ettim baktım güzel paylaşımlar yapıyorsunuz ve sizi herzaman takip ediyorum yararlı paylaşımlar yapıyorsunuz. Teşekkürler….

Leave a Reply

Your email address will not be published. Required fields are marked *