我可以在java中获得任何简单的方法,我可以按顺序排列字母
a < aa < aaa < aaaa
a < b < ab < ba < aba
String.compareTo方法将以下面的格式排列数据。因此不会达到我的目的 a&lt; aa&lt; aaa&lt; b&lt; ab&lt; BA
请帮助!!!
答案 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