php エディター Strawberry は、文字列の長さを逆にソートするという興味深い文字列ソート問題を提供します。つまり、最も長い文字列が最初に来ます。この問題は、組み込み関数とカスタム ソート関数を使用することで解決できます。並べ替えプロセスでは、各文字列の長さを計算し、最大長から最小長の順に並べ替える必要があります。次に、この興味深い文字列ソート問題を実装する方法を詳しく説明します。
質問を長さ(降順)で並べ替えるメソッドorderquestionsbylength()を作成する演習を行う必要がありました。
次のコードは機能します (ただし、降順でソートされません):リーリー
.reversed() を追加するとすぐに、IDE はエラーをスローします。'object' のメソッド 'gettext' を解決できません gettext() メソッドがあり、.reversed It を追加しているにもかかわらず、 () より前に動作します
この問題の解決方法がわからないのに、gpt はコードが正しいと言っているので、これは私を狂わせています (gpt に頼るべきではありませんが、整数を降順に並べ替える別の方法があるので、Returned() を返しました。問題なく使用されました回避策comparator.comparing メソッドが .reversed() でチェーンされているときにラムダ パラメーターの型を正しく推論できないために、この問題が発生することがあります。この問題を解決するには、ラムダ式で
明示的な型情報を指定します。 (string question) -> … を使用して orderquestionsbylength
メソッドを変更する方法を次に示します。
<div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false;">`public void orderQuestionsByLength(){
Collections.sort(questions,Comparator.comparing(question -> question.getText().length()));
for (Question question : questions){
System.out.println(question);
}
}`</pre><div class="contentsignin">ログイン後にコピー</div></div>
call
。
文法に注意してください。
comparator.comparing を使用してコンパレータを生成した後、reversed を呼び出します。
メソッド呼び出しです。
comparator#reversed
(string issue) -> ….
リーリー
ところで、上に示したように、
collections#foreach
for ループを折りたたむことができます。
完全なサンプル アプリケーション コード:
リーリー
以上が文字列の長さを逆に並べ替えます (最長の文字列が最初)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。