Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Android

Cách kiểm tra ký tự đầu tiên của EditText có phải chữ cái không

Giới thiệu

Bài viết minh họa cách kiểm tra ký tự đầu tiên của chuỗi nhập vào EditText có phải là chữ cái (alphabet A-Z, a-z) hay không.

Các bước thực hiện

Bước 1: Tạo project mới

Android Studio → File → New Project → Empty Activity.

Bước 2: Giao diện (res/layout/activity_main.xml)

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="https://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:gravity="center"
    android:padding="16dp">

    <EditText
        android:id="@+id/etInput"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint="Nhập chuỗi bất kỳ"
        android:inputType="text" />

    <Button
        android:id="@+id/btnCheck"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="16dp"
        android:text="Kiểm tra" />

</LinearLayout>

Bước 3: Logic xử lý (MainActivity.kt)

package com.example.checkalphabet

import android.os.Bundle
import android.widget.Button
import android.widget.EditText
import android.widget.Toast
import androidx.appcompat.app.AppCompatActivity
import kotlinx.android.synthetic.main.activity_main.*

class MainActivity : AppCompatActivity() {

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        btnCheck.setOnClickListener {
            val input = etInput.text.toString().trim()
            if (input.isEmpty()) {
                Toast.makeText(this, "Vui lòng nhập dữ liệu", Toast.LENGTH_SHORT).show()
                return@setOnClickListener
            }

            val firstChar = input.first()
            val isAlphabet = firstChar.isLetter() // Kiểm tra Unicode letter

            // Nếu chỉ muốn A-Z, a-z (ASCII):
            // val isAsciiLetter = firstChar in 'a'..'z' || firstChar in 'A'..'Z'

            val result = if (isAlphabet) {
                "Ký tự '$firstChar' LÀ chữ cái"
            } else {
                "Ký tự '$firstChar' KHÔNG phải chữ cái"
            }
            Toast.makeText(this, result, Toast.LENGTH_LONG).show()
        }
    }
}

Giải thích

  • Char.isLetter(): Trả về true nếu ký tự là chữ cái theo Unicode (bao gồm tiếng Việt, tiếng Nhật, tiếng Nga, v.v.).
  • Char.isDigit(): Kiểm tra số 0-9.
  • Char.isLetterOrDigit(): Chữ hoặc số.
  • firstChar in 'a'..'z': Range check chỉ cho ASCII lowercase.

So sánh các phương pháp

Phương pháp Phạm vi Ví dụ true Ví dụ false
isLetter() Unicode Letter a, Z, à, é, あ, 한 1, @, space
in 'a'..'z' || in 'A'..'Z' ASCII Only a, Z à, é, 1, @
Character.isAlphabetic() (Java) Unicode Alphabetic a, à, 한 1, @

Lưu ý

  • Luôn .trim() trước khi lấy ký tự đầu để tránh khoảng trắng.
  • Kiểm tra isEmpty() trước khi gọi first() để tránh crash.
  • Với tiếng Việt có dấu, isLetter() trả về true (đúng mong đợi).