Ali Kayadibi
Yazılım Geliştirme Uzmanı

Java 17: Text-Blocks & String Methods

Java 17: Text-Blocks & String Methods

Text-Blocks Javada çok satırlı Stringleri kullanmamıza yarar. Çoğu programlama dilinde olan bu özellik, java 13 sürümü ile javaya da eklenmiştir. Bir diğer yeni özellik ise satır içi çok satırlı stringleri daha okunabilir hale getirme özelliğidir.

Açma ve Kapama Tırnakları

Text blocklar, var olan yapıya ek bir yapı olduğundan geliştirme ekibi önceden bulunan kısımlarla görsel olarak ayırabilicek bir yapıya ihtiyaç duydu. Bu amaçla da “”” işaretini tercih ettiler.

1
2
3
4
5
6
7
8
9
"""
satır 1
satır 2
satır 3
"""
"""
satır 4
satır 5
satır 6""" // üç tırnak burda da kullanılabilir

Incidental White Space(Olası Boşluklar)

Satırlardaki girintiler en az girinti sayısına göre düzenlendi, böylece en az boşluk karakterine sahip satır, her satırdan kaç tane boşluk karakterinin kaldırılması gerektiğini belirlemek için kullanıldı.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
class Foo { 																								
  public void bar() {    
    String txt = """      
      Some        
        Nested                                                    
          Text        
        Is     
      Here      
      """;  
  }
}
//Kodunun eşleniği olarak aşağıdaki şekilde düzenlenmesi sağlandı.
class Foo {
  public void bar() {
    String txt =
      "Some\n" +
      "  Nested\n" +
      "    Text\n" +
      "  Is\n" +
      "Here\n";
  }
}

Kapatma tırnağının önündeki 2 boşluk silinseydi, aşağıdaki gibi bir sonuç elde etmiş olucaktık.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
class Foo { 
 public void bar() {    
   String txt = """      
     Some        
       Nested          
         Text        
       Is     
     Here      
   """;  
 }
}
//Kodunun eşleniği olarak aşağıdaki şekilde düzenlenmesi sağlandı.
class Foo {
  public void bar() {
    String txt =
      "  Some\n" +
      "    Nested\n" +
      "      Text\n" +
      "    Is\n" +
      "  Here\n";
 }
}

Kaçış Karakterleri

Kod blokları, stringlerle aynı şekilde kaçış karakterlerinin kullanılmasına izin veriyor. Ek olarak string işlemlerindeki +’ya eş olarak kod bloklarında \ kullanılması sağlandı. \s kaçış karakteri için de bir adet boşluk dönüşümü yapıldı.

1
2
3
4
5
6
7
8
9
String text = "Lorem ipsum dolor sit amet, consectetur adipiscing " +
              "elit, sed do eiusmod tempor incididunt ut labore " +
              "et dolore magna aliqua.";
//Kodunun eşleniği olarak aşağıdaki şekilde düzenlenmesi sağlandı.
String text = """
                Lorem ipsum dolor sit amet, consectetur adipiscing \
                elit, sed do eiusmod tempor incididunt ut labore \
                et dolore magna aliqua.\
                """;

Kod Bloklarındaki Yeni Metodlar

  • str.formatted(args)–String.format(str, args) in eşleniği olarak eklendi.
  • str.stripIndent()– Compilerın boşlukları silmek için kullandığı yapı eklendi.
  • str.translateEscapes()– Kaçış karanterlerini karakter gösterimlerine çevirmeye yarayan yeni bir metod.

Referanslar