String & Method Bawaan
Bekerja dengan String: panjang, mengubah huruf, memotong, mencari, mengganti, memecah-menggabung, StringBuffer, dan membandingkan teks.
String adalah barisan karakter
Teks adalah data yang paling sering diolah. String di Dart bersifat immutable: setiap method menghasilkan String baru, string aslinya tidak berubah.
String s = 'Belajar Dart';
print(s.length); // 12
print(s[0]); // B (indeks mulai dari 0)
print(s.isEmpty); // false
print(s.isNotEmpty); // true
Mengubah dan membersihkan
| Method | Hasil untuk ' Dart Itu Asyik ' |
|---|---|
toUpperCase() | ' DART ITU ASYIK ' |
toLowerCase() | ' dart itu asyik ' |
trim() | 'Dart Itu Asyik' (buang spasi pinggir) |
trimLeft() / trimRight() | Buang spasi satu sisi |
Mencari dan memeriksa
var s = 'Belajar Dart di KelasIT';
s.contains('Dart'); // true
s.startsWith('Belajar'); // true
s.endsWith('IT'); // true
s.indexOf('Dart'); // 8
s.indexOf('Java'); // -1 (tidak ada)
Memotong dan mengganti
var s = 'Belajar Dart';
s.substring(0, 7); // 'Belajar'
s.substring(8); // 'Dart'
s.replaceAll('a', '4'); // 'Bel4j4r D4rt'
s.replaceFirst('Dart', 'Flutter'); // 'Belajar Flutter'
'ha' * 3; // 'hahaha'
Memecah dan menggabung
var csv = 'apel,jeruk,mangga';
List<String> buah = csv.split(','); // ['apel', 'jeruk', 'mangga']
String gabung = buah.join(' | '); // 'apel | jeruk | mangga'
'a-b-c'.split('-'); // ['a', 'b', 'c']
'halo'.split(''); // ['h', 'a', 'l', 'o']
Merapikan tampilan
'7'.padLeft(3, '0'); // '007'
'Dart'.padRight(8, '.'); // 'Dart....'
// Huruf kapital di awal kata
String kapital(String s) => s.isEmpty ? s : s[0].toUpperCase() + s.substring(1);
kapital('belajar'); // 'Belajar'
Membandingkan
'dart' == 'dart'; // true (membandingkan isi)
'Dart'.toLowerCase() == 'dart'; // true (abaikan huruf besar/kecil)
'apel'.compareTo('jeruk'); // negatif: apel lebih dulu
StringBuffer: menyusun teks panjang
Menyambung string dengan += dalam loop membuat banyak string sementara. Untuk banyak sambungan pakai StringBuffer:
var buf = StringBuffer();
for (int i = 1; i <= 3; i++) {
buf.write('Baris $i');
buf.writeln(); // tambah baris baru
}
print(buf.toString());
Karakter dan kode
'A'.codeUnitAt(0); // 65
String.fromCharCode(66); // 'B'
'Dart'.split('').reversed.join(); // 'traD' (membalik teks)
Contoh: cek palindrom
bool palindrom(String teks) {
var bersih = teks.toLowerCase().replaceAll(' ', '');
return bersih == bersih.split('').reversed.join();
}
print(palindrom('Kasur ini rusak')); // true
Error umum
RangeError (index): Invalid value→ indeks di luar panjang string; ceklengthdulu.- Memanggil method tapi hasilnya tidak dipakai:
s.trim();tidak mengubahs. Tuliss = s.trim();. The method 'x' isn't defined for the type 'String'→ salah nama method (Dart:toUpperCase, bukanupper).