Jawaban:
toCharArray
diikuti oleh Arrays.sort
diikuti oleh panggilan konstruktor String:
import java.util.Arrays;
public class Test
{
public static void main(String[] args)
{
String original = "edcba";
char[] chars = original.toCharArray();
Arrays.sort(chars);
String sorted = new String(chars);
System.out.println(sorted);
}
}
EDIT: Seperti yang ditunjukkan oleh tackline, ini akan gagal jika string berisi pasangan pengganti atau memang karakter gabungan (aksen + e sebagai karakter terpisah) dll. Pada titik itu akan menjadi jauh lebih sulit ... semoga Anda tidak membutuhkan ini :) Selain itu, ini hanya dipesan secara ordinal, tanpa memperhitungkan huruf besar, aksen, atau apa pun lainnya.
sorted
sudah menjadi String
... apa yang Anda harapkan toString()
untuk dilakukan?
char[] c = s.toCharArray(); Arrays.sort(c); String sorted = new String(c);
Tidak, tidak ada metode String bawaan. Anda dapat mengonversinya menjadi array char, mengurutkannya menggunakan Arrays.sort dan mengubahnya kembali menjadi String.
String test= "edcba";
char[] ar = test.toCharArray();
Arrays.sort(ar);
String sorted = String.valueOf(ar);
Atau, ketika Anda ingin berurusan dengan benar dengan hal-hal spesifik lokal seperti huruf besar dan aksen karakter:
import java.text.Collator;
import java.util.Arrays;
import java.util.Comparator;
import java.util.Locale;
public class Test
{
public static void main(String[] args)
{
Collator collator = Collator.getInstance(new Locale("fr", "FR"));
String original = "éDedCBcbAàa";
String[] split = original.split("");
Arrays.sort(split, collator);
String sorted = "";
for (int i = 0; i < split.length; i++)
{
sorted += split[i];
}
System.out.println(sorted); // "aAàbBcCdDeé"
}
}
Di Java 8 dapat dilakukan dengan:
String s = "edcba".chars()
.sorted()
.collect(StringBuilder::new, StringBuilder::appendCodePoint, StringBuilder::append)
.toString();
Alternatif yang sedikit lebih pendek yang bekerja dengan Stream of Strings of length satu (setiap karakter dalam String yang tidak disortir diubah menjadi String dalam Stream) adalah:
String sorted =
Stream.of("edcba".split(""))
.sorted()
.collect(Collectors.joining());
Konversi ke berbagai karakter → Sortir → Konversi kembali ke String :
String s = "edcba";
char[] c = s.toCharArray(); // convert to array of chars
java.util.Arrays.sort(c); // sort
String newString = new String(c); // convert back to String
System.out.println(newString); // "abcde"
Pendekatan yang lebih baku tanpa menggunakan metode sort Arrays.sort. Ini menggunakan jenis penyisipan.
public static void main(String[] args){
String wordSt="watch";
char[] word=wordSt.toCharArray();
for(int i=0;i<(word.length-1);i++){
for(int j=i+1;j>0;j--){
if(word[j]<word[j-1]){
char temp=word[j-1];
word[j-1]=word[j];
word[j]=temp;
}
}
}
wordSt=String.valueOf(word);
System.out.println(wordSt);
}
String a ="dgfa";
char [] c = a.toCharArray();
Arrays.sort(c);
return new String(c);
Perhatikan bahwa ini tidak akan berfungsi seperti yang diharapkan jika itu adalah string case campuran (Ini akan menempatkan huruf besar sebelum huruf kecil). Anda dapat melewati pembanding ke metode Urutkan untuk mengubahnya.
Prosedur:
Cuplikan kode:
String input = "world";
char[] arr = input.toCharArray();
Arrays.sort(arr);
String sorted = new String(arr);
System.out.println(sorted);
Pertanyaan: urutkan string dalam java
public class SortAStringInJava {
public static void main(String[] args) {
String str = "Protijayi";
// Method 1
str = str.chars() // IntStream
.sorted().collect(StringBuilder::new, StringBuilder::appendCodePoint, StringBuilder::append).toString();
System.out.println(str);
// Method 2
str = Stream.of(str.split(" ")).sorted().collect(Collectors.joining());
System.out.println(str);
}
}
public static void main(String[] args) {
String str = "helloword";
char[] arr;
List<Character> l = new ArrayList<Character>();
for (int i = 0; i < str.length(); i++) {
arr = str.toCharArray();
l.add(arr[i]);
}
Collections.sort(l);
str = l.toString();
System.out.println(str);
str = str.replaceAll("\\[", "").replaceAll("\\]", "")
.replaceAll("[,]", "");
System.out.println(str);
}
Tanpa menggunakan Koleksi di Jawa:
import java.util.Scanner;
public class SortingaString {
public static String Sort(String s1)
{
char ch[]=s1.toCharArray();
String res=" ";
for(int i=0; i<ch.length ; i++)
{
for(int j=i+1;j<ch.length; j++)
{
if(ch[i]>=ch[j])
{
char m=ch[i];
ch[i]=ch[j];
ch[j]=m;
}
}
res=res+ch[i];
}
return res;
}
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
System.out.println("enter the string");
String s1=sc.next();
String ans=Sort( s1);
System.out.println("after sorting=="+ans);
}
}
Keluaran:
masukkan string ==
penyortiran
setelah mengurutkan == ginorst