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