> Java > 문자열 길이를 역순으로 정렬합니다(가장 긴 문자열부터 정렬)

문자열 길이를 역순으로 정렬합니다(가장 긴 문자열부터 정렬)

王林
풀어 주다: 2024-02-13 23:57:08
앞으로
610명이 탐색했습니다.

PHP 편집기 Strawberry는 흥미로운 문자열 정렬 문제를 제공합니다. 즉, 문자열 길이를 반대로 정렬하는 것입니다. 즉, 가장 긴 문자열이 먼저 옵니다. 이 문제는 내장 기능과 사용자 정의 정렬 기능을 사용하여 해결할 수 있습니다. 정렬 과정에서 각 문자열의 길이를 계산하고 가장 큰 길이부터 가장 작은 길이 순으로 정렬해야 합니다. 다음으로, 이 흥미로운 문자열 정렬 문제를 구현하는 방법을 자세히 설명하겠습니다.

질문 내용

질문을 길이(내림차순)에 따라 정렬하는 orderquestionsbylength() 메서드를 작성해야 하는 연습을 해야 했습니다

다음 코드는 작동하지만 내림차순으로 정렬되지는 않습니다.

으아악

.reversed()를 추가하자마자 내 IDE에서 오류가 발생합니다. 'object'에서 'gettext' 메서드를 확인할 수 없습니다. gettext() 메서드가 있고 .reversed()를 추가하기 전에 작동하더라도

이 문제를 해결하는 방법을 모르고 gpt에서 내 코드가 정확하다고 말하기 때문에 이것이 나를 미치게 만듭니다. (gpt에 의존해야 한다는 것은 아니지만 정수를 내림차순으로 정렬하는 다른 방법이 있고 사용합니다. 문제가 없습니다. with received()

해결 방법

때로는 comparator.comparing 메서드가 .reversed()와 연결될 때 람다 매개 변수의 유형을 올바르게 유추할 수 없기 때문에 이런 일이 발생합니다.

이 문제를 해결하려면 람다 식에 명시적 유형 정보를 제공하면 됩니다. (string question) -> … 修改 orderquestionsbylength 메소드를 사용하는 방법은 다음과 같습니다.

`public void orderQuestionsByLength(){
        Collections.sort(questions,Comparator.comparing(question -> question.getText().length())); 
        for (Question question : questions){                                                       
            System.out.println(question);
        }
    }`
로그인 후 복사

전화comparator#reversed.

문법에 주의하세요. 에서 comparator.comparing 生成比较器后调用 reversed를 사용하세요.

  • comparator.comparing 是一个 static 인스턴스(객체)를 생성하는 메서드 호출.
  • comparator#reversed은 다른 객체를 생성하는 인스턴스 메서드 호출입니다.

chf의 답변에서 지적했듯이 람다에 전달된 매개변수의 데이터 유형을 명시적으로 명시해야 할 수도 있습니다. ( 字符串问题 ) -> ….

으아악

그런데 위와 같이 collections#foreach 和方法引用来折叠 for 루프를 사용할 수 있습니다.

전체 샘플 애플리케이션 코드:

으아악

위 내용은 문자열 길이를 역순으로 정렬합니다(가장 긴 문자열부터 정렬)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:stackoverflow.com
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿