Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Java

โปรแกรม Java เปรียบเทียบสตริงแบบเล็กซิโคกราฟิก (Lexicographically)


บทนำ

ในบทความนี้ เราจะเรียนรู้วิธีการเปรียบเทียบสตริงสองตัวแบบเล็กซิโคกราฟิก (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() - ตรวจสอบความเท่ากันไม่สนใจพิมพ์ใหญ่/เล็ก