12

文字列の配列を変更せずに逆の順序で (大文字と小文字を区別せずに) 並べ替えようとしています。だから私はJava8ストリームを使用しています。しかし、私はそれを行うことができません。

これが私の試みです:

package experimentations.chapter02;

import java.util.Arrays;
import java.util.Comparator;
import java.util.stream.Collectors;

public class StringStream {

    public static void main(String[] args) {
        sortStrings();
    }

    public static void sortStrings(){
        String[] stringsArray = "The quick brown fox has a dirty ladder".split("\\s+");
        System.out.println(
                Arrays.stream(stringsArray)
                .sorted(Comparator.comparing(String::toLowerCase).reversed())
                .collect(Collectors.toList())
        );
    }

}

ここでの問題はString::toLowerCase、静的メソッドでは受け入れられないことですComparator.comparing

その間、私は配列をソートすることができましたが、それを変更しました:

public static void sortStrings(){
        String[] stringsArray = "The quick brown fox has a dirty ladder".split("\\s+");
        System.out.println(
                Arrays.stream(stringsArray)
                .map(String::toLowerCase)
                .sorted(Comparator.reverseOrder())
                .collect(Collectors.toList())
        );
}

では、最も簡単な回避策は何ですか?

4

2 に答える 2