Jawaban:
String.compareTo mungkin atau mungkin tidak yang Anda butuhkan.
Lihat tautan ini jika Anda membutuhkan urutan string yang dilokalkan.
String#compareToIgnoreCase
Lihatlah String.compareTometodenya.
s1.compareTo(s2)
Dari javadocs:
Hasilnya adalah bilangan bulat negatif jika objek String ini secara leksikografis mendahului string argumen. Hasilnya adalah bilangan bulat positif jika objek String ini secara leksikografis mengikuti string argumen. Hasilnya nol jika string sama; bandingkanTo mengembalikan 0 tepat ketika metode sama dengan (Objek) akan mengembalikan nilai true.
Anda dapat memanggil metode bandingkanTo string (java.lang.String.compareTo). Fitur ini didokumentasikan dengan baik di situs dokumentasi java .
Berikut adalah program singkat yang mendemonstrasikannya:
class StringCompareExample {
public static void main(String args[]){
String s1 = "Project"; String s2 = "Sunject";
verboseCompare(s1, s2);
verboseCompare(s2, s1);
verboseCompare(s1, s1);
}
public static void verboseCompare(String s1, String s2){
System.out.println("Comparing \"" + s1 + "\" to \"" + s2 + "\"...");
int comparisonResult = s1.compareTo(s2);
System.out.println("The result of the comparison was " + comparisonResult);
System.out.print("This means that \"" + s1 + "\" ");
if(comparisonResult < 0){
System.out.println("lexicographically precedes \"" + s2 + "\".");
}else if(comparisonResult > 0){
System.out.println("lexicographically follows \"" + s2 + "\".");
}else{
System.out.println("equals \"" + s2 + "\".");
}
System.out.println();
}
}
Berikut adalah demonstrasi langsung yang menunjukkan cara kerjanya: http://ideone.com/Drikp3
Untuk urutan abjad setelah nasionalisasi, gunakan Collator.
//Get the Collator for US English and set its strength to PRIMARY
Collator usCollator = Collator.getInstance(Locale.US);
usCollator.setStrength(Collator.PRIMARY);
if( usCollator.compare("abc", "ABC") == 0 ) {
System.out.println("Strings are equivalent");
}
Untuk daftar lokal yang didukung, lihat JDK 8 dan JRE 8 Lokal yang Didukung .
import java.io.*;
import java.util.*;
public class CandidateCode {
public static void main(String args[] ) throws Exception {
Scanner sc = new Scanner(System.in);
int n =Integer.parseInt(sc.nextLine());
String arr[] = new String[n];
for (int i = 0; i < arr.length; i++) {
arr[i] = sc.nextLine();
}
for(int i = 0; i <arr.length; ++i) {
for (int j = i + 1; j <arr.length; ++j) {
if (arr[i].compareTo(arr[j]) > 0) {
String temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
}
for(int i = 0; i <arr.length; i++) {
System.out.println(arr[i]);
}
}
}
String#compareToperbandingan leksikografik akan mengurutkan huruf besar "Z" sebelum huruf kecil "a." Jika Anda menyusun string dengan huruf campuran sesuai abjad, Anda memerlukan pengurutan yang peka-lokal. Jika tautan ke pengurutan string yang dilokalkan mati, hal yang akan digunakan adalah java.text.Collator .