簡體   English   中英

根據字符及其長度對字符串數據進行排序

[英]Sort string data based on characters and its length

我可以在Java中以任何簡單的方式在其中按順序排列字母嗎

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

String.compareTo方法將以以下格式排列數據。 因此不會滿足我的目的a <aa <aaa <b <ab <ba

請幫助!!!

您可以使用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());

您可以使用比較器來比較字符串長度,並一起使用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 );
        }

您也可以通過排序解決此問題。

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

輸出:

go < going < how < jam < went

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM