บทนำ
ตัวอย่างนี้สาธิตวิธีใช้เมธอด trim() เพื่อตัดช่องว่าง (Whitespace) นำหน้าและท้ายสตริงที่ผู้ใช้กรอกใน EditText ก่อนนำไปแสดงใน TextView
ขั้นตอนที่ 1: สร้างโปรเจกต์
Android Studio → File → New Project → Empty Activity
ขั้นตอนที่ 2: Layout (activity_main.xml)
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="https://schemas.android.com/apk/res/android"
xmlns:app="https://schemas.android.com/apk/res-auto"
xmlns:tools="https://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:gravity="center"
android:padding="16dp"
tools:context=".MainActivity">
<EditText
android:id="@+id/name"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="Enter name"
android:inputType="text" />
<Button
android:id="@+id/click"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:text="Trim & Show" />
<TextView
android:id="@+id/textview"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:textSize="25sp" />
</LinearLayout>
ขั้นตอนที่ 3: โค้ดหลัก (MainActivity.java)
package com.example.myapplication;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
public class MainActivity extends AppCompatActivity {
EditText name;
Button button;
TextView text;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
name = findViewById(R.id.name);
button = findViewById(R.id.click);
text = findViewById(R.id.textview);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String input = name.getText().toString();
if (!input.isEmpty()) {
// ใช้ trim() ตัดช่องว่างนำหน้าและท้าย
String trimmed = input.trim();
text.setText("Result: '" + trimmed + "'");
} else {
name.setError("Please enter name");
}
}
});
}
}
ผลลัพธ์

ในตัวอย่าง: กรอก " krishna " (มีช่องว่างหน้า-หลัง) → ผลลัพธ์: 'krishna' (ไม่มีช่องว่าง)
คำอธิบาย trim()
String.trim()คืนค่า String ใหม่ที่ตัด Leading (นำหน้า) และ Trailing (ท้าย) Whitespace ออก- Whitespace รวมถึง: Space ( ), Tab (\t), Newline (\n), Carriage Return (\r), Form Feed (\f)
- ไม่ตัดช่องว่างกลาง:
"a b".trim()→"a b"(คงช่องว่างระหว่างคำ) - Immutable: String ใน Java เป็น Immutable ต้องรับค่ากลับมาเก็บในตัวแปรใหม่
เมธอดเกี่ยวข้อง (Java 11+ / API 24+)
| เมธอด | คำอธิบาย |
|---|---|
strip() | เหมือน trim() แต่รองรับ Unicode Whitespace ทั้งหมด (แนะนำ Java 11+) |
stripLeading() | ตัดเฉพาะนำหน้า (Unicode Aware) |
stripTrailing() | ตัดเฉพาะท้าย (Unicode Aware) |
isBlank() | ตรวจสอบว่า String ว่างหรือมีแต่ Whitespace (Java 11+) |
Android-Specific: TextUtils
import android.text.TextUtils;
// ตรวจสอบว่าว่างหรือมีแต่ Space
if (TextUtils.isEmpty(input)) { ... } // null หรือ ""
if (TextUtils.isBlank(input)) { ... } // API 29+ : "" หรือ " " หรือ null
// Trim แบบ Android (เหมือน String.trim())
String trimmed = TextUtils.trim(input);
Best Practices สำหรับ Form Input
- Trim ทันที:
String value = editText.getText().toString().trim(); - Validate หลัง Trim: ตรวจสอบ
isEmpty()หลัง Trim แล้ว - Input Filter: ใช้
InputFilterจำกัดตัวอักษรหรือความยาว - Error UI: ใช้
setError()บน EditText แทน Toast
ตัวอย่างโค้ดสมบูรณ์ (Validation + Trim)
button.setOnClickListener(v -> {
String raw = name.getText().toString();
String trimmed = raw.trim();
if (TextUtils.isEmpty(trimmed)) {
name.setError("Name cannot be empty");
return;
}
if (trimmed.length() < 2) {
name.setError("Name too short");
return;
}
// สำเร็จ - ใช้ trimmed
text.setText("Hello, " + trimmed);
name.setError(null); // Clear error
});