根据字符及其长度对字符串数据进行排序

时间:2013-08-27 07:51:26

标签: java string

我可以在java中获得任何简单的方法,我可以按顺序排列字母

a < aa < aaa < aaaa
a < b < ab < ba < aba

String.compareTo方法将以下面的格式排列数据。因此不会达到我的目的 a&lt; aa&lt; aaa&lt; b&lt; ab&lt; BA

请帮助!!!

3 个答案:

答案 0 :(得分:6)

您可以使用Comparator

来完成此操作

检查一下:

import java.util.Comparator;
public class SComparator implements Comparator<String> {

    @Override
    public int compare(String s1, String s2) {
        if(s1.length() != s2.length()){
            return s1.length() - s2.length();
        }
        return s1.compareTo(s2);
    }

}

然后,您可以像这样使用它:

ArrayList<String> L = new ArrayList<String>();
// ...
Collections.sort(L, new SComparator());

答案 1 :(得分:1)

您可以使用比较字符串长度的比较器并一起使用compareTo

        public int compare( String o1, String o2 )
        {
            if( o1.length() > o2.length() )
            {
                return 1;
            }
            else if( o1.length() < o2.length() )
            {
                return -1;
            }
            return o1.compareTo( o2 );
        }

答案 2 :(得分:0)

您也可以通过排序解决此问题。

String[] words = {"going", "went", "go", "how", "jam"};    
Arrays.sort(arr);

输出:

go < going < how < jam < went