자바에서 Java 프로그램을 작성하여 문자열을 사전 순으로 정렬했습니다. 그것은 문자로 취급 문자열 갖는 로마 숫자 정렬 따라 정렬 될 때 문제가자바에서 사용자 정의 문자열 정렬
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
public class SampleCustomSortApp
{
@SuppressWarnings("unchecked")
public static void main(String[] args)
{
ArrayList<String> titles =new ArrayList();
titles.add("java");
titles.add("J-IV");
titles.add("A-V");
titles.add("J-V");
titles.add("J-IX");
titles.add("J-XX");
titles.add("J-X");
titles.add("J-I");
titles.add("J-II");
titles.add("datawarehouse");
titles.add("oracledba");
System.out.println("Before Sorting Elements Are :"+titles+"\n");
Collections.sort(titles, new MyCustomCompator());
System.out.println("After Sorting Elements Are :"+titles);
}
}
class MyCustomCompator implements Comparator
{
public int compare(Object s1,Object s2)
{
String one = (String)s1;
String two = (String)s2;
/* for ascending order */
if(one.compareTo(two)>0){
return 1;
}else{
return -1;
}
}
}
실제 출력
Before Sorting Elements Are :[java, J-IV, A-V, J-V, J-IX, J-XX, J-X, J-I, J-II, datawarehouse, oracledba]
After Sorting Elements Are :[A-V, J-I, J-II, J-IV, J-IX, J-V, J-X, J-XX, datawarehouse, java, oracledba]
원하는 출력
Before Sorting Elements Are :[java, J-IV, A-V, J-V, J-IX, J-XX, J-X, J-I, J-II, datawarehouse, oracledba]
After Sorting Elements Are :[A-V, J-I, J-II, J-IV, J-V,J-IX, J-X, J-XX, datawarehouse, java, oracledba]
제가 비교 정규식 표현을 사용해야 현. 어떤 사람들은 해결책을 말해 줄 수 있습니까
슛, 나는 같은 링크로 너무 느리다 ... – Paul
나는 초보자 마크 다, 나의 시나리오로 설명 할 수 있을까? –