14. Bekerja dengan teks — Solusi PR
File solusi .lua ada di
exercises/14/homework/solutions/.
Soal 1 — Inisial
Soal. Cetak inisial seperti K.R. dari
nama depan dan nama belakang.
Cara berpikirnya. Huruf pertama sebuah nama diambil
dengan string.sub(name, 1, 1). Sambungkan dengan
.. dan titik.
Solusi lengkap.
local first = "Keiko"
local last = "Raharja"
print(string.sub(first, 1, 1) .. "." .. string.sub(last, 1, 1) .. ".")Keluaran:
K.R.
Kesalahan umum.
string.sub(first, 1)(tanpa akhir) mengembalikan nama secara utuh. Gunakan(first, 1, 1).
Soal 2 — Mengandung
Soal. Cetak yes atau no
tergantung apakah sebuah kalimat mengandung kata lua.
Cara berpikirnya. string.find
mengembalikan nil kalau kata tidak ditemukan, dan
nil bernilai salah, sehingga akan masuk ke cabang
if.
Solusi lengkap.
local sentence = "i am learning lua this year"
if string.find(sentence, "lua") then
print("yes")
else
print("no")
endKesalahan umum.
- Membandingkan dengan
== true.findmengembalikan sebuah angka saat ada kecocokan, bukantrue. Biarkanifyang mengujinya; nilai selain nil dianggap benar.
Soal 3 — Sensor
Soal. Ganti setiap spasi dengan tanda hubung.
Solusi lengkap.
local message = "meet me at noon"
print(string.gsub(message, " ", "-"))Tunggu dulu — ini mencetak dua hal, karena gsub juga
mengembalikan jumlah penggantian:
meet-me-at-noon 4
Untuk mencetak hanya stringnya saja, simpan ke variabel:
local message = "meet me at noon"
local dashed = string.gsub(message, " ", "-")
print(dashed) -- meet-me-at-noonKesalahan umum.
- Terkejut dengan angka di belakang.
gsubmengembalikan string dan jumlah penggantian; tangkap ke variabel agar hanya mendapat stringnya.
Tantangan — Panjang kata terakhir
Soal. Cetak tiga karakter terakhir dengan indeks
negatif, dan panjangnya dengan #.
Solusi lengkap.
local word = "programming"
print(string.sub(word, -3)) -- ing
print(#word) -- 11Karena -3 dihitung dari akhir, ini memberikan tiga huruf
terakhir dari kata apapun — tanpa perlu menghitung manual.
Kesalahan umum.
string.sub(word, #word - 2)juga bisa, tapi-3lebih singkat dan lebih jelas: "tiga dari akhir".
Selesai?
Sekarang kamu sudah bisa memotong, mencari, dan mengganti teks. Bab terakhir Bagian 3 — Mendapatkan input — memungkinkan pengguna mengetik nilai, yang masuk sebagai string untuk dipotong dan diperiksa.