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
}
}
반응형