Java Academy · Les

Tekstblokken en String.format

Schrijf tekenreeksen over meerdere regels met tekstblokken en formatteer gegevens met String.format-patronen.

Les 3 van 413 stappen

Tekstblokken en String.format is een gratis Java Academy-les op CoddyKit. Dit is les 3 van 4. Je kunt de volledige les hieronder gratis lezen en daarna in de browser praktisch oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is. Deze les maakt deel uit van het leertraject Java Academy. Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus Java Academy bevat in totaal 4 lessen.

Tekstblokken en String.format

Met tekstblokken (Java 15+) kun je tekenreeksliteralen over meerdere regels schrijven zonder escapetekens. In combinatie met String.format en formatted() maken ze complexe tekenreeksuitvoer overzichtelijk en leesbaar.

Wat zijn tekstblokken?

Een tekstblok is een tekenreeksletterlijke waarde die is omsloten door drie dubbele aanhalingstekens """. Het behoudt regeleinden en inspringing automatisch, waardoor escapereeksen voor inhoud over meerdere regels niet nodig zijn.

// 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);

Omgaan met inspringing

Tekstblokken verwijderen automatisch de gemeenschappelijke witruimte aan het begin. De positie van de afsluitende """ bepaalt de inspringing.

// 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"
// }

Ingebedde aanhalingstekens

Tekstblokken kunnen dubbele aanhalingstekens bevatten zonder ze te escapen, zolang er geen drie opeenvolgende aanhalingstekens voorkomen. Eén " en "" zijn toegestaan.

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

Tekstblokken voor JSON-sjablonen

Tekstblokken zijn bijzonder handig voor JSON-, HTML-, XML- en SQL-sjablonen die in tests of configuratie worden gebruikt.

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);

formatted() met tekstblokken

Combineer tekstblokken met formatted() (Java 15+) om sjablonen met parameters te maken.

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

Escapereeksen in tekstblokken

Tekstblokken ondersteunen \n, \t en de \ van Java 14+ (doorgaan op de volgende regel) en \s (afsluitende witruimte behouden).

// \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.

Naslag voor String.format

Belangrijke formaatspecificaties voor String.format:

  • %s — String
  • %d — geheel getal
  • %f — kommagetal
  • %.2f — 2 cijfers na de komma
  • %n — regeleinde van het platform
  • %x — hexadecimaal
  • %10d — rechts uitlijnen binnen 10 tekens
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");

stripIndent en translateEscapes voor tekstblokken

Twee String-methoden werken met tekstblokken: stripIndent() verwijdert gemeenschappelijke witruimte aan het begin en translateEscapes() verwerkt escapereeksen in een tekenreeks tijdens runtime.

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

Praktisch: HTML-e-mailsjabloon

Een HTML-e-mailsjabloon met parameters opbouwen met een tekstblok.

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"));

Tekstblokken tegenover String.join

Voor lijsten met elementen zijn String.join of Collectors.joining flexibeler dan een tekstblok. Gebruik tekstblokken voor vaste inhoud over meerdere regels en join voor dynamische lijsten.

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);

Korte controle

Wat bepaalt de positie van de afsluitende """ in een tekstblok?

Samenvatting: tekstblokken en String.format

Belangrijkste punten:

  • Tekstblokken (Java 15+) gebruiken drie aanhalingstekens en behouden de structuur over meerdere regels zonder escapetekens
  • Gemeenschappelijke witruimte aan het begin wordt automatisch verwijderd op basis van de positie van de afsluitende \"\"\"
  • Dubbele aanhalingstekens in tekstblokken hoeven niet te worden geescapet
  • Gebruik .formatted() op een tekstblok voor sjablonen met parameters
  • String.format-specificaties: %s, %d, %.2f, %n, %x en vlaggen voor breedte en uitlijning
  • Gebruik \s aan het einde van een regel om afsluitende spaties te behouden; gebruik \ aan het einde van een regel om regels samen te voegen
Gratis beginnen

Leer Java met een AI-tutor — gratis

Schrijf echte code en voer die uit in je browser, krijg direct hulp van een AI-tutor die 24/7 beschikbaar is en ga verder waar je gebleven bent op het web of in de app.

Cursussen
104
Lessen
374

Veelgestelde vragen

Is de les “Tekstblokken en String.format” gratis?

Ja — de volledige tekst van “Tekstblokken en String.format” kun je hier gratis op het web lezen. Als je interactief wilt oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is, en de rest van de cursus Java Academy wilt ontgrendelen, kun je upgraden naar CoddyKit PRO. De cursus Java Academy bevat in totaal 4 lessen.

Wat leer ik in “Tekstblokken en String.format”?

Schrijf tekenreeksen over meerdere regels met tekstblokken en formatteer gegevens met String.format-patronen. Je oefent met Java Academy door code rechtstreeks in de browser uit te voeren. Een AI-begeleider die 24/7 beschikbaar is beantwoordt je vragen terwijl je de les doorwerkt.

Heb ik ervaring nodig om met Java Academy te beginnen?

Ervaring vooraf is niet nodig. Java Academy op CoddyKit is opgebouwd voor beginners tot gevorderden, zodat je hier of bij het begin kunt starten en in je eigen tempo kunt leren. Dit is les 3 van 4.

Hoe lang duurt de les “Tekstblokken en String.format”?

De meeste lessen van CoddyKit duren ongeveer 5–10 minuten. Elke les is kort en interactief, zodat je gestaag vooruitgaat en op het web en in de app precies verdergaat waar je was gebleven.

Kan ik code schrijven en uitvoeren in deze les over Java Academy?

Ja. Elke les over Java Academy bevat een ingebouwde code-editor, zodat je rechtstreeks in je browser echte code kunt schrijven en uitvoeren en direct feedback van AI krijgt — lokale installatie is niet nodig.

Alle lessen in deze cursus

  1. Onveranderlijkheid van String en de String-pool
  2. StringBuilder voor efficiënte concatenatie
  3. Tekstblokken en String.format
  4. Reguliere expressies met Pattern en Matcher
← Terug naar Java Academy