문자열을 java로 내용을 기준으로 정렬하는 방법은 있습니까? 예 :Java에서 단일 문자열 정렬
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);
}
}
편집 : : 문자열 생성자 호출 다음에 Arrays.sort
다음
String s = "edcba" -> "abcde"
올바른 방법은 코드 포인트를 정렬하는 것입니다. 불행히도 String.toCodePointArray가 없습니다. (어떤 순서로 정렬해야합니까? btw?) –
ICU 프로젝트는 코드 포인트 주문 UTF-16 정렬 방법을 설명합니다. http://icu-project.org/docs/papers/utf16_code_point_order.html. 나는 Arrays.sort가 범위가 정의 된 방식으로 인해 보충 문자를 파괴 할 것이라고 생각하지 않지만 나를 인용하지는 않습니다. – McDowell
어쩌면 아무것도 파괴하지 않지만, 예를 들어 대문자와 악센트를 고려하려는 경우 정렬 순서가 최적이 아닙니다. 이 알고리즘은 "éDedCBcbAàa"를 "ABCDabcdeàé"로 정렬하지만, 예를 들어 영어 (미국) 로켈에서는 "aAàbBcCdDeé"를 얻는 것이 더 바람직합니다. – eljenso