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

Cách dùng endsWith() trong TextView Android để kiểm tra hậu tố chuỗi

Giới thiệu

Bài viết minh họa cách dùng phương thức String.endsWith() để kiểm tra chuỗi nhập vào EditText có kết thúc bằng một chuỗi con cụ thể hay không (ví dụ: "point").

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 (ví dụ: tutorialspoint)"
        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 endsWith" />

    <TextView
        android:id="@+id/tvResult"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="24dp"
        android:textSize="18sp"
        android:textStyle="bold" />

</LinearLayout>

Bước 3: Logic (MainActivity.kt)

package com.example.endswithdemo

import android.os.Bundle
import android.widget.Button
import android.widget.EditText
import android.widget.TextView
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()
            if (input.isEmpty()) {
                etInput.error = "Vui lòng nhập chuỗi"
                return@setOnClickListener
            }

            val suffix = "point"
            val endsWithSuffix = input.endsWith(suffix)

            tvResult.text = "endsWith(\"$suffix\"): $endsWithSuffix"
            Toast.makeText(this, "Kết quả: $endsWithSuffix", Toast.LENGTH_LONG).show()
        }
    }
}

Giải thích endsWith()

  • input.endsWith("point"): Trả về Boolean - true nếu chuỗi kết thúc bằng "point".
  • Phân biệt chữ hoa/thường (case-sensitive).
  • Có overload: endsWith(suffix, ignoreCase) (Kotlin extension) hoặc regionMatches (Java).

Các biến thể hữu ích

1. Không phân biệt hoa/thường (Case-insensitive)

// Kotlin extension
val result = input.endsWith("POINT", ignoreCase = true)

// Java
boolean result = input.toLowerCase().endsWith("point");
// Hoặc
boolean result = input.regionMatches(true, input.length - "point".length, "point", 0, "point".length);

2. Kiểm tra nhiều hậu tố (Multiple suffixes)

val suffixes = listOf(".com", ".net", ".org", ".vn")
val hasValidDomain = suffixes.any { input.endsWith(it, ignoreCase = true) }

3. Kiểm tra prefix (startsWith) - đối ngẫu

val startsWithHttp = input.startsWith("https://") || input.startsWith("https://")

So sánh các phương pháp kiểm tra chuỗi

Phương thức Mục đích Ví dụ
endsWith(suffix) Kết thúc bằng suffix "abc".endsWith("c") = true
startsWith(prefix) Bắt đầu bằng prefix "abc".startsWith("a") = true
contains(substring) Chứa substring bất kỳ vị trí "abc".contains("b") = true
matches(regex) Khớp regex toàn chuỗi "abc".matches("a.c") = true

Lưu ý

  • endsWith("") luôn trả về true (chuỗi rỗng là hậu tố của mọi chuỗi).
  • Kotlin endsWith(suffix, ignoreCase = true) tiện hơn Java.
  • Dùng cho validation: email domain, file extension, URL pattern, v.v.