Tekstblokken en String.format
Schrijf tekenreeksen over meerdere regels met tekstblokken en formatteer gegevens met String.format-patronen.
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 blockTekstblokken 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.99Escapereeksen 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 3Praktisch: 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
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
- Onveranderlijkheid van String en de String-pool
- StringBuilder voor efficiënte concatenatie
- Tekstblokken en String.format
- Reguliere expressies met Pattern en Matcher