เปรียบเทียบสองสตริงโดยใช้วิธี CompareTo() ใน Java ไวยากรณ์มีดังนี้ −
int compareTo(Object o)
ในที่นี้ o เป็นวัตถุที่จะเปรียบเทียบ
ค่าที่ส่งกลับเป็น 0 ถ้าอาร์กิวเมนต์เป็นสตริง lexicographically เท่ากับสตริงนี้ ค่าที่น้อยกว่า 0 ถ้าอาร์กิวเมนต์เป็นสตริงที่มากกว่าสตริงนี้ และค่าที่มากกว่า 0 ถ้าอาร์กิวเมนต์เป็นสตริงพจนานุกรมน้อยกว่าสตริงนี้
ตัวอย่าง
เรามาดูตัวอย่างกัน −
public class Demo { public static void main(String args[]) { String str1 = "Strings are immutable"; String str2 = new String("Strings are immutable"); String str3 = new String("Integers are not immutable"); int result = str1.compareTo( str2 ); System.out.println(result); result = str2.compareTo( str3 ); System.out.println(result); } }
ผลลัพธ์
0 10
ให้เราดูตัวอย่างอื่นที่เรากำลังเปรียบเทียบสองสตริง lexicographically โดยไม่สนใจความแตกต่างของตัวพิมพ์โดยใช้ comparisonToIgnoreCase() เมธอดนี้คืนค่าจำนวนเต็มลบ ศูนย์ หรือจำนวนเต็มบวก เนื่องจากสตริงที่ระบุมากกว่า เท่ากับ หรือน้อยกว่าสตริงนี้ โดยไม่สนใจการพิจารณาตัวพิมพ์เล็กและใหญ่
ไวยากรณ์มีดังนี้ −
int compareToIgnoreCase(String str)
ในที่นี้ str คือสตริงที่จะเปรียบเทียบ
ตัวอย่าง
เรามาดูตัวอย่างเพื่อเปรียบเทียบสตริงโดยไม่สนใจตัวพิมพ์เล็กและตัวพิมพ์ใหญ่ -
public class Demo { public static void main(String args[]) { String str1 = "Strings are immutable"; String str2 = "Strings are immutable"; String str3 = "Integers are not immutable"; int result = str1.compareToIgnoreCase( str2 ); System.out.println(result); result = str2.compareToIgnoreCase( str3 ); System.out.println(result); result = str3.compareToIgnoreCase( str1 ); System.out.println(result); } }
ผลลัพธ์
0 10 -10