0

重複の可能性:
カスタム オブジェクトの ArrayList をプロパティで並べ替える

次の文字列を含む文字列のarrayListがあります

Common Ruby Errors 45min
Rails for Python Developers lightning
Communicating Over Distance 60min
Accounting-Driven Development 45min
Woah 30min
Sit Down and Write 30min

今、各文字列に記載されている番号に従って、配列リストを降順で並べ替えたい

つまり、ソートされたリストは次のようになります

Communicating Over Distance 60min
Common Ruby Errors 45min
Accounting-Driven Development 45min
Woah 30min
Sit Down and Write 30min
Rails for Python Developers lightning

どうすればそれを行うことができますか?

4

2 に答える 2

3

@Rohitが示唆するように、あなたの仕事は2つあります

  • 並べ替えたいプロパティ (数値) を抽出する方法を理解する
  • Comparator上記のメソッドを使用するa を作成し、sortedList = Collections.sort( list , new YourComparator() )

このようなものが実行可能かもしれません:

    Comparator c = new Comparator<String>()
    {
        @Override
        public int compare( String o1, String o2 )
        {
            return getNumber( o1 ).compareTo( getNumber( o2 ) );
        }

        private Integer getNumber( String str ) 
        {
            Pattern pattern = Pattern.compile("([0-9]+)");
            Matcher matcher = pattern.matcher(str);
            while ( matcher.find() ) { return Integer.parseInt( matcher.group( 1 ) ); }

            return 0;
        }
    }

乾杯、

于 2012-10-10T07:26:12.287 に答える
1
  1. ストライプから番号を抽出できる必要があります。正規表現が役立ちます
  2. 数字を比較できる必要があります。コンパレータが役立ちます

あなたがそれらを持っているならあなたはただ電話する必要があります

Collections.sort(yourLIstWithString, new YourNumberInStringComparator());

于 2012-10-10T07:30:38.480 に答える