UTF-8 dan Char
Penanganan Unicode
UTF-8 dan Char adalah pelajaran Learn Rust Coding gratis di CoddyKit. Ini adalah pelajaran 4 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 Learn Rust Coding, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Learn Rust Coding mencakup 4 pelajaran total.
String Rust adalah UTF-8
Setiap String dan &str Rust dikodekan sebagai UTF-8. Artinya, teks dapat memuat karakter Unicode apa pun, bukan hanya ASCII.
fn main() {
let s = String::from("caf\u{e9}");
println!("{}", s);
}Apa Itu UTF-8?
UTF-8 mengodekan setiap karakter Unicode menggunakan satu hingga empat byte. Karakter ASCII menggunakan satu byte; huruf beraksen dan emoji menggunakan lebih banyak byte.
fn main() {
let ascii = "A"; // 1 byte
let accent = "\u{e9}"; // 2 bytes (e-acute)
println!("{} bytes vs {} bytes", ascii.len(), accent.len());
}Byte vs Karakter
Karena pengodean multibyte, len() mengembalikan jumlah byte, sedangkan jumlah karakter dapat lebih sedikit.
fn main() {
let s = "caf\u{e9}";
println!("bytes {}", s.len());
println!("chars {}", s.chars().count());
}Tipe char adalah Unicode
char Rust adalah nilai 4 byte yang dapat menyimpan nilai skalar Unicode apa pun, jauh melampaui satu byte.
fn main() {
let letter = 'Z';
let accented = '\u{f1}'; // n with tilde
println!("{} {}", letter, accented);
}Melakukan Iterasi pada Karakter
Gunakan chars() untuk menelusuri teks berdasarkan karakter. Cara ini menangani karakter multibyte dengan benar.
fn main() {
let s = "a\u{e9}z";
for c in s.chars() {
println!("{}", c);
}
}Mengapa Anda Tidak Dapat Mengindeks berdasarkan Angka
Rust tidak mengizinkan s[0] pada string. Karena ukuran byte karakter dapat berbeda, pengindeksan menggunakan satu angka akan bersifat ambigu dan tidak aman.
fn main() {
let s = "hello";
// let c = s[0]; // error: cannot index a str
let first = s.chars().next().unwrap();
println!("{}", first);
}Mendapatkan Karakter nth
Gunakan metode iterator nth untuk mengambil karakter berdasarkan posisinya. Metode ini mengembalikan Option.
fn main() {
let s = "abcdef";
let third = s.chars().nth(2);
println!("{:?}", third);
}Melakukan Iterasi pada Byte
Saat Anda benar-benar memerlukan byte mentah, gunakan bytes() yang menghasilkan nilai u8.
fn main() {
let s = "AB";
for b in s.bytes() {
println!("{}", b);
}
}Mengiris pada Batas Byte
Irisan string menggunakan indeks byte. Pengirisan harus berakhir pada batas karakter yang valid, atau program akan mengalami kepanikan.
fn main() {
let s = "hello";
let part = &s[0..3]; // valid ASCII boundary
println!("{}", part);
}Metode char
Tipe char memiliki metode praktis seperti is_alphabetic, is_numeric, dan to_uppercase.
fn main() {
let c = 'k';
println!("alpha {} numeric {}", c.is_alphabetic(), c.is_numeric());
println!("upper {}", c.to_uppercase());
}Menghitung Karakter Tertentu
Gabungkan chars dengan filter untuk menghitung karakter yang sesuai dengan suatu kondisi.
fn main() {
let s = "banana";
let a_count = s.chars().filter(|&c| c == 'a').count();
println!("a appears {} times", a_count);
}Pemeriksaan Singkat
Ingat kembali mengapa panjang string dapat mengejutkan Anda.
Ringkasan
UTF-8 dan chars di Rust:
- String menggunakan UTF-8; karakter menggunakan 1 hingga 4 byte.
len()memberikan jumlah byte;chars().count()memberikan jumlah karakter.- Anda tidak dapat mengindeks string berdasarkan angka; gunakan
chars()ataunth. - Irisan harus berada pada batas karakter.
fn main() {
let s = "sm\u{ee}le";
println!("bytes {} chars {}", s.len(), s.chars().count());
for c in s.chars() {
print!("{} ", c);
}
println!();
}Belajar Rust dengan tutor AI — gratis
Tulis dan jalankan kode asli di browser kamu, dapatkan bantuan instan dari tutor AI 24/7, dan lanjutkan di mana kamu tinggalkan di web atau aplikasi.
- Kursus
- 39
- Pelajaran
- 144
Pertanyaan yang Sering Diajukan
Apakah pelajaran “UTF-8 dan Char” gratis?
Ya — teks lengkap “UTF-8 dan Char” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Learn Rust Coding, upgrade ke CoddyKit PRO. Kursus Learn Rust Coding mencakup 4 pelajaran total.
Apa yang akan aku pelajari di “UTF-8 dan Char”?
Penanganan Unicode Kamu berlatih Learn Rust Coding 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 Learn Rust Coding?
Tidak diperlukan pengalaman sebelumnya. Learn Rust Coding 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 4 dari 4.
Berapa lama pelajaran “UTF-8 dan Char” 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 Learn Rust Coding ini?
Ya. Setiap pelajaran Learn Rust Coding 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
- String vs &str
- Slice
- Method String
- UTF-8 dan Char