บทนำ
ในบทความนี้ เราจะเรียนรู้วิธีการเปรียบเทียบสตริงสองตัวแบบเล็กซิโคกราฟิก (Lexicographically) สตริงเป็นชนิดข้อมูลที่ประกอบด้วยตัวอักษรหนึ่งตัวขึ้นไป และล้อมรอบด้วยเครื่องหมายคำพูดคู่ (" ") สตริงเป็นลำดับของตัวอักษร ในภาษา Java สตริงถูกจัดการเป็นออบเจ็กต์
ตัวอย่างการทำงาน
อินพุทตัวอย่าง:
Input string: Morning Input string: Evening
เอาต์พุทที่คาดหวัง:
The result of comparing the two strings is: 8
อัลกอริทึม
ขั้นตอนที่ 1 - เริ่มต้น ขั้นตอนที่ 2 - ประกาศสตริงสองตัว: input_string_1, input_string_2 ขั้นตอนที่ 3 - กำหนดค่า ขั้นตอนที่ 4 - เปรียบเทียบสตริงสองตัวด้วย .compareTo() ขั้นตอนที่ 5 - แสดงผลลัพธ์ ขั้นตอนที่ 6 - จบการทำงาน
ตัวอย่างที่ 1: เขียนในฟังก์ชัน main โดยตรง
public class Demo {
public static void main(String[] args) {
String input_string_1 = "Morning";
System.out.println("The first string is defined as: " + input_string_1);
String input_string_2 = "Evening";
System.out.println("The second string is defined as: " + input_string_2);
System.out.println("\nThe result of comparing the two strings is: ");
System.out.println(input_string_1.compareTo(input_string_2));
}
}
เอาต์พุท
The first string is defined as: Morning The second string is defined as: Evening The result of comparing the two strings is: 8
ตัวอย่างที่ 2: ใช้เมธอดแยก (Object-Oriented Style)
public class Demo {
static void compare(String input_string_1, String input_string_2) {
System.out.println("\nThe result of comparing the two strings is: ");
System.out.println(input_string_1.compareTo(input_string_2));
}
public static void main(String[] args) {
String input_string_1 = "Morning";
System.out.println("The first string is defined as: " + input_string_1);
String input_string_2 = "Evening";
System.out.println("The second string is defined as: " + input_string_2);
compare(input_string_1, input_string_2);
}
}
เอาต์พุท
The first string is defined as: Morning The second string is defined as: Evening The result of comparing the two strings is: 8
การตีความผลลัพธ์ของ compareTo():
- ค่าติดลบ: สตริงแรก "น้อยกว่า" สตริงที่สอง (อยู่หน้าในพจนานุกรม)
- ศูนย์ (0): สตริงทั้งสองเท่ากันทุกประการ
- ค่าบวก: สตริงแรก "มากกว่า" สตริงที่สอง (อยู่หลังในพจนานุกรม)
ตัวอย่าง: "Morning" vs "Evening" → 'M' (77) - 'E' (69) = 8 (บวก → Morning มากกว่า Evening)
เมธอดเกี่ยวข้อง:
compareToIgnoreCase()- เปรียบเทียบไม่สนใจพิมพ์ใหญ่/เล็กequals()- ตรวจสอบความเท่ากัน (true/false)equalsIgnoreCase()- ตรวจสอบความเท่ากันไม่สนใจพิมพ์ใหญ่/เล็ก