Blok Teks dan String.format
Tulis string multiline dengan blok teks dan format data menggunakan pola String.format.
Blok Teks dan String.format adalah pelajaran Java Academy gratis di CoddyKit. Ini adalah pelajaran 3 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Java Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Java Academy mencakup 4 pelajaran total.
Blok Teks dan String.format
Blok teks (Java 15+) memungkinkan literal String multiline tanpa escape. Jika dikombinasikan dengan String.format dan formatted(), blok teks membuat keluaran String yang rumit menjadi bersih dan mudah dibaca.
Apa Itu Blok Teks?
Blok teks adalah literal String yang diapit tiga tanda kutip ganda """. Blok teks mempertahankan baris baru dan indentasi secara otomatis, sehingga escape sequence untuk konten multiline tidak diperlukan.
// 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);Penanganan Indentasi
Blok teks secara otomatis menghapus spasi kosong umum di awal baris. Posisi """ penutup mengendalikan indentasi.
// 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"
// }Tanda Kutip Tersemat
Blok teks dapat berisi tanda kutip ganda tanpa escape, selama tidak ada tiga tanda kutip berurutan. Tanda kutip tunggal " dan ganda "" tidak bermasalah.
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 blockBlok Teks untuk Templat JSON
Blok teks sangat berguna untuk templat JSON, HTML, XML, dan SQL yang digunakan dalam pengujian atau konfigurasi.
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() dengan Blok Teks
Gabungkan blok teks dengan formatted() (Java 15+) untuk membuat templat berparameter.
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.99Escape Sequence dalam Blok Teks
Blok teks mendukung \n, \t, serta \ Java 14+ (pelanjutan baris) dan \s (mempertahankan spasi kosong di akhir).
// \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.Referensi String.format
Penentu format penting untuk String.format:
- %s—String
- %d—bilangan bulat
- %f—bilangan pecahan
- %.2f—2 tempat desimal
- %n—baris baru platform
- %x—heksadesimal
- %10d—rata kanan dalam 10 karakter
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 dan translateEscapes pada Blok Teks
Dua metode String dapat digunakan dengan blok teks: stripIndent() menghapus spasi kosong umum di awal baris, sedangkan translateEscapes() memproses escape sequence dalam String saat waktu berjalan.
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 3Praktik: Templat Email HTML
Membangun templat email HTML berparameter menggunakan blok teks.
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"));Blok Teks vs String.join
Untuk daftar item, String.join atau Collectors.joining lebih fleksibel daripada blok teks. Gunakan blok teks untuk konten multiline yang tetap; gunakan join untuk daftar dinamis.
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);Pemeriksaan Singkat
Hal apa yang dikendalikan oleh posisi """ penutup dalam blok teks?
Rangkuman: Blok Teks dan String.format
Hal-hal penting:
- Blok teks (Java 15+) menggunakan tiga tanda kutip dan mempertahankan struktur multiline tanpa escape
- Spasi kosong umum di awal baris dihapus secara otomatis berdasarkan posisi penutup \"\"\"
- Tanda kutip ganda di dalam blok teks tidak perlu di-escape
- Gunakan .formatted() pada blok teks untuk templat berparameter
- Penentu String.format: %s, %d, %.2f, %n, %x, serta tanda lebar dan perataan
- Gunakan \s di akhir baris untuk mempertahankan spasi di akhir; gunakan \ di akhir baris untuk menggabungkan baris
Pertanyaan yang Sering Diajukan
Apakah pelajaran “Blok Teks dan String.format” gratis?
Ya — teks lengkap “Blok Teks dan String.format” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Java Academy, upgrade ke CoddyKit PRO. Kursus Java Academy mencakup 4 pelajaran total.
Apa yang akan aku pelajari di “Blok Teks dan String.format”?
Tulis string multiline dengan blok teks dan format data menggunakan pola String.format. Kamu berlatih Java Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.
Apakah aku perlu pengalaman untuk memulai Java Academy?
Tidak diperlukan pengalaman sebelumnya. Java Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 3 dari 4.
Berapa lama pelajaran “Blok Teks dan String.format” memakan waktu?
Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.
Bisakah aku menulis dan menjalankan kode dalam pelajaran Java Academy ini?
Ya. Setiap pelajaran Java Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.
Semua pelajaran dalam kursus ini
- Imutabilitas String dan String Pool
- StringBuilder untuk Penggabungan Efisien
- Blok Teks dan String.format
- Ekspresi Reguler dengan Pattern dan Matcher