Web/Back

[JAVA] 문자열 정렬 (String 오름차순/내림차순 , StringBuilder 람다식 )

옥돔이와 연근이 2025. 2. 20. 15:39
반응형

정렬예시
정렬 예시

 


 

📍 문자열 정렬 (오름차순, 내림차순)

String 배열이나 문자열을 정렬하는 방법

 

 − 오름차순 :   Arrays.sort()   

import java.util.Arrays;

public class Main {
    public static void main(String[] args) {
        String[] words = {"banana", "apple", "cherry"};

        // 오름차순 정렬
        Arrays.sort(words);

        System.out.println(Arrays.toString(words));  // 출력: [apple, banana, cherry]
    }
}

 

− 내림차순: Arrays.sort( , Comparator.reverseOrder()) 

import java.util.Arrays;
import java.util.Comparator;

public class Main {
    public static void main(String[] args) {
        String[] words = {"banana", "apple", "cherry"};

        // 내림차순 정렬
        Arrays.sort(words, Comparator.reverseOrder());

        System.out.println(Arrays.toString(words));  // 출력: [cherry, banana, apple]
    }
}

 


 

📍 2. 람다식을 이용한 문자열 정렬

 

(a, b) -> 람다식을 이용한 오름차순/내림차순 정렬

import java.util.Arrays;

public class Main {
    public static void main(String[] args) {
        String[] words = {"banana", "apple", "cherry"};

        // 오름차순 정렬 (기본)
        Arrays.sort(words, (a, b) -> a.compareTo(b));

        System.out.println(Arrays.toString(words));  // 출력: [apple, banana, cherry]

        // 내림차순 정렬
        Arrays.sort(words, (a, b) -> b.compareTo(a));

        System.out.println(Arrays.toString(words));  // 출력: [cherry, banana, apple]
    }
}

 

💡compareTo 작동 방식 💡

더보기

 

 Arrays.sort(words, (a, b) -> b.compareTo(a));
  • b.compareTo(a): 사전순으로 뒤에 오는 단어가 더 큰 것으로 간주됩니다.
  • 이 정렬 방식은 Z → A 순으로, 즉 내림차순으로 정렬됩니다.

 

 람다식으로 문자열 길이 기준 정렬

import java.util.Arrays;

public class Main {
    public static void main(String[] args) {
        String[] words = {"apple", "banana", "pear"};

        // 문자열 길이 기준 오름차순 정렬
        Arrays.sort(words, (a, b) -> Integer.compare(a.length(), b.length()));

        System.out.println(Arrays.toString(words));  // 출력: [pear, apple, banana]
    }
}

 

💡람다식 다중 조건을 사용하는 경우(2차원 배열 등)💡

더보기
Arrays.sort(array, (a, b) -> {
    if (a[0] != b[0]) {
        return Integer.compare(a[0], b[0]);
    } else if (a[1] != b[1]) {
        return Integer.compare(a[1], b[1]);
    } else {
        return Integer.compare(a[2], b[2]); // 첫 번째, 두 번째가 같으면 세 번째 열로 비교
    }
});

 


 

📍 3. StringBuilder를 사용한 문자열 조작

StringBuilder 를 활용하면 문자열을 효율적으로 조작

 

 문자열 뒤집기 (reverse)

public class Main {
    public static void main(String[] args) {
        StringBuilder sb = new StringBuilder("hello");

        // 문자열 뒤집기
        sb.reverse();

        System.out.println(sb);  // 출력: olleh
    }
}

 

 

 

반응형