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 là số chẵn hay lẻ

Giới thiệu

Bài viết minh họa cách lấy ký tự đầu tiên từ EditText, kiểm tra xem nó có phải là chữ số không, và xác định số chẵn hay lẻ.

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 đầu bằng số"
        android:inputType="number"
        android:maxLength="20" />

    <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.checkevenodd

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()
            if (firstChar.isDigit()) {
                val digit = firstChar.digitToInt()
                val result = if (digit % 2 == 0) "chẵn" else "lẻ"
                Toast.makeText(this, "Ký tự đầu '$firstChar' là số $result", Toast.LENGTH_LONG).show()
            } else {
                Toast.makeText(this, "Ký tự đầu '$firstChar' không phải là số", Toast.LENGTH_LONG).show()
            }
        }
    }
}

Giải thích code

  • input.first(): Lấy ký tự đầu tiên của chuỗi (Kotlin extension).
  • firstChar.isDigit(): Kiểm tra có phải chữ số 0-9 không.
  • firstChar.digitToInt(): Chuyển char '0'-'9' thành Int 0-9.
  • digit % 2 == 0: Kiểm tra chẵn/lẻ.

Cải tiến: Kiểm tra toàn bộ chuỗi là số

if (input.all { it.isDigit() }) {
    // Toàn bộ là số
    val number = input.toIntOrNull()
    // Xử lý số lớn...
}

Lưu ý

  • android:inputType="number" chỉ giới hạn bàn phím, người dùng vẫn có thể paste text khác.
  • Luôn validate lại dữ liệu trong code.
  • Xử lý trường hợp chuỗi rỗng để tránh crash.