Menu
CoddyTech

string.find()

Termasuk bagian Logika dan Alur dalam perjalanan Lua di Coddy. Pelajaran 37 dari 54.

Sekarang setelah memahami kelas karakter, kamu bisa menggunakannya dengan string.find() untuk mencari pola, bukan teks yang persis sama. Ini membuka banyak kemungkinan untuk validasi dan analisis teks.

Fungsi string.find() bekerja dengan pola seperti halnya dengan string literal. Fungsi ini mengembalikan posisi tempat pola pertama kali cocok:

local text = "User123"
local position = string.find(text, "%d")
print(position)  -- output: 5

Ini menemukan digit pertama dalam string, yang berada di posisi 5. Kamu juga bisa mencari kebalikannya dengan menggunakan kelas karakter huruf besar:

local code = "ABC123"
local position = string.find(code, "%D")
print(position)  -- output: 1

Di sini, %D cocok dengan karakter apa pun yang bukan angka, jadi kode ini menemukan huruf pertama pada posisi 1.

Tugas validasi yang umum adalah memeriksa apakah sebuah string dimulai dengan pola tertentu. Kamu dapat menggunakan jangkar ^ di awal pola agar pencocokan hanya dilakukan di awal string:

local username = "player42"
local startsWithLetter = string.find(username, "^%a")

if startsWithLetter then
    print("Valid username")
else
    print("Username must start with a letter")
end

Pola ini memeriksa apakah string diawali dengan huruf, sehingga berguna untuk validasi input yang memerlukan format tertentu.

Untuk menemukan karakter khusus itu sendiri, seperti titik, escape karakter tersebut dengan % atau nonaktifkan pola dengan pencarian biasa (1 untuk memulai dari karakter pertama, true untuk pencarian biasa):

print(string.find("v1.5", "%."))         -- output: 3 3
print(string.find("v1.5", ".", 1, true))  -- output: 3 3
print(string.find("v1.5", "."))          -- output: 1 1 (. cocok dengan karakter apa pun)
challenge icon

Tantangan

Mudah

Tulis fungsi startsWithLetter yang menerima text dan mengembalikan apakah string diawali dengan huruf.

Gunakan string.find() dengan anchor ^ dan kelas karakter %a untuk memeriksa apakah string dimulai dengan huruf.

Parameter:

  • text (string): String yang akan divalidasi

Nilai yang dikembalikan: true jika string diawali dengan huruf, false jika tidak (boolean)

Coba sendiri

function startsWithLetter(text)
    -- Tulis kodemu di sini
end
quiz iconUji dirimu

Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.

Semua pelajaran di Logika dan Alur

Latihan sendiri: Compiler Lua online