0Pricing
Java Academy · Ders

Metin Blokları ve String.format

Metin bloklarıyla çok satırlı dizeler yazın ve String.format kalıplarıyla verileri biçimlendirin.

Metin Blokları ve String.format, CoddyKit'te ücretsiz bir Java Academy dersidir. Bu, 4 dersinin 3. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Java Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Java Academy kursu toplamda 4 dersten oluşur.

Metin Blokları ve String.format

Metin blokları (Java 15 ve sonrası), kaçış karakterleri kullanmadan çok satırlı String sabitleri oluşturmayı sağlar. String.format ve formatted() ile birlikte kullanıldıklarında karmaşık String çıktısını temiz ve okunabilir hâle getirirler.

Metin Blokları Nedir?

Metin bloğu, üç çift tırnakla çevrelenmiş bir String sabitidir: """. Yeni satırları ve girintiyi otomatik olarak korur; böylece çok satırlı içeriklerde kaçış dizilerine gerek kalmaz.

// Traditional multi-line string
String old = "SELECT id, name, email\n" +
             "FROM users\n" +
             "WHERE active = true\n" +
             "ORDER BY name;";

// Text block (Java 15+) — much cleaner
String sql = """
    SELECT id, name, email
    FROM users
    WHERE active = true
    ORDER BY name;
    """;

System.out.println(sql);

Girinti İşleme

Metin blokları, ortak baştaki boşlukları otomatik olarak kaldırır. Kapanış """ konumu girintiyi denetler.

// Leading spaces up to the closing """ are stripped
String json = """
        {
            "name": "Alice",
            "role": "admin"
        }
        """;
// Output has no leading spaces (stripped by common indent)
System.out.println(json);
// {
//     "name": "Alice",
//     "role": "admin"
// }

Gömülü Tırnak İşaretleri

Metin blokları, art arda üç tırnak bulunmadığı sürece çift tırnakları kaçış karakteri kullanmadan içerebilir. Tek bir " ve "" kullanılabilir.

String html = """
    <div class="container">
        <p class="title">Hello, World!</p>
        <a href="https://example.com">Click here</a>
    </div>
    """;
System.out.println(html);
// Note: no need to escape " inside the block

JSON Şablonları için Metin Blokları

Metin blokları, sınamalarda veya yapılandırmada kullanılan JSON, HTML, XML ve SQL şablonlarında özellikle kullanışlıdır.

String request = """
    {
        "email": "alice@example.com",
        "password": "secret123",
        "plan": "PRO"
    }
    """;

// In tests: compare expected JSON
String expected = """
    {
      "status": "created",
      "id": 42
    }
    """;
// Perfect for MockMvc test assertions
System.out.println(request);

Metin Bloklarıyla formatted()

Parametreli şablonlar oluşturmak için metin bloklarını formatted() (Java 15 ve sonrası) ile birleştirin.

String name = "Alice";
long orderId = 1234L;
double total = 149.99;

String email = """
    Dear %s,

    Your order #%d has been confirmed.
    Total charged: $%.2f

    Thank you for shopping with us!
    """.formatted(name, orderId, total);

System.out.println(email);
// Dear Alice,
// Your order #1234 has been confirmed.
// Total charged: $149.99

Metin Bloklarında Kaçış Dizileri

Metin blokları \n, \t ve Java 14 ve sonrasında sunulan \ (satır devamı) ile \s (sondaki boşlukları koruma) dizilerini destekler.

// \s forces a space (preserves trailing whitespace on line)
String padded = """
    line one  \s
    line two   \s
    """;

// \ (backslash at end of line) joins lines in source but keeps them as one
String poem = """
    Roses are red, \
    violets are blue.
    """;
System.out.println(poem); // Roses are red, violets are blue.

String.format Başvurusu

String.format için temel biçim belirteçleri:

  • %s — String
  • %d — tamsayı
  • %f — kayan noktalı sayı
  • %.2f — 2 ondalık basamak
  • %n — platforma özgü satır sonu
  • %x — onaltılık gösterim
  • %10d — 10 karakter içinde sağa hizalama
System.out.printf("%s | %d | %.2f | %X%n", "Item", 42, 9.99, 255);
// Item | 42 | 9.99 | FF

String formatted = String.format("%-20s %6.2f%n", "Mechanical Keyboard", 129.95);
System.out.print(formatted);
// Mechanical Keyboard 129.95

// Named format with text block
System.out.printf("""
    Order: %s
    Total: $%.2f
    Status: %s%n""", "ORD-001", 99.99, "SHIPPED");

Metin Bloğunda stripIndent ve translateEscapes

İki String yöntemi metin bloklarıyla çalışır: stripIndent() ortak baştaki boşlukları kaldırır, translateEscapes() ise çalışma zamanındaki bir String'de kaçış dizilerini işler.

String raw = "  hello\\n  world";
System.out.println(raw);                    // hello\n  world
System.out.println(raw.translateEscapes()); // hello (newline) world

// stripIndent removes common leading whitespace
String indented = "    line 1\n    line 2\n    line 3";
System.out.println(indented.stripIndent()); // line 1\nline 2\nline 3

Uygulamalı: HTML E-posta Şablonu

Bir metin bloğuyla parametreli bir HTML e-posta şablonu oluşturma.

static String buildWelcomeEmail(String name, String activationLink) {
    return """
        <!DOCTYPE html>
        <html>
          <body>
            <h1>Welcome, %s!</h1>
            <p>Click the link below to activate your account:</p>
            <a href="%s">Activate Account</a>
          </body>
        </html>
        """.formatted(name, activationLink);
}

System.out.println(buildWelcomeEmail("Alice",
    "https://app.example.com/activate?token=abc123"));

Metin Blokları ve String.join Karşılaştırması

Öğe listeleri için String.join veya Collectors.joining, metin bloğundan daha esnektir. Sabit çok satırlı içerikler için metin bloklarını, dinamik listeler için join kullanın.

import java.util.*;
import java.util.stream.*;

List<String> features = List.of("Unlimited storage", "Priority support", "AI assistant");

// Dynamic list: join
String bullet = features.stream()
    .map(f -> "  • " + f)
    .collect(Collectors.joining("\n"));
System.out.println(bullet);
// • Unlimited storage
// • Priority support
// • AI assistant

// Fixed template: text block + formatted
String plan = """
    PRO Plan — $29/month
    Features:
    %s
    """.formatted(bullet);
System.out.println(plan);

Hızlı Kontrol

Bir metin bloğunda kapanış """ konumu neyi denetler?

Özet: Metin Blokları ve String.format

Temel çıkarımlar:

  • Metin blokları (Java 15 ve sonrası) üçlü tırnak kullanır ve kaçış karakteri olmadan çok satırlı yapıyı korur
  • Ortak baştaki boşluklar, kapanış \"\"\" konumuna göre otomatik olarak kaldırılır
  • Metin bloklarındaki çift tırnaklar için kaçış karakteri gerekmez
  • Parametreli şablonlar için bir metin bloğunda .formatted() kullanın
  • String.format belirteçleri: %s, %d, %.2f, %n, %x, genişlik/hizalama bayrakları
  • Satır sonunda sondaki boşlukları korumak için \s, satırları birleştirmek için satır sonunda \ kullanın

Sıkça Sorulan Sorular

“Metin Blokları ve String.format” dersi ücretsiz mi?

Evet — “Metin Blokları ve String.format” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Java Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Java Academy kursu toplamda 4 dersten oluşur.

“Metin Blokları ve String.format” dersinde ne öğreneceğim?

Metin bloklarıyla çok satırlı dizeler yazın ve String.format kalıplarıyla verileri biçimlendirin. Java Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.

Java Academy öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te Java Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 3. dersidir.

“Metin Blokları ve String.format” dersi ne kadar sürer?

Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.

Bu Java Academy dersinde kod yazıp çalıştırabilir miyim?

Evet. Her Java Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.

Bu kursun tüm dersleri

  1. String Değişmezliği ve String Havuzu
  2. Verimli Birleştirme için StringBuilder
  3. Metin Blokları ve String.format
  4. Pattern ve Matcher ile Düzenli İfadeler
← Java Academy Sayfasına Dön