java 에서 문자열을 다루며 빈번하게 하는 작업 중 하나가 뒤집기(reverse) 이다.
🎈 문자열 뒤집기 예시 : "abcde" -> "edcba"
💕 1. StringBuilder, StringBuffer를 이용
reverse() 메소드를 제공하는 StringBuilder / StringBuffer 클래스를 이용한다.
바꾸고 싶은 문자열을 이용하여 StringBuilder 또는 StringBuffer 객체를 생성 후에 제공되는 reverse() 메소드를 사용한다.
public class Main {
public static void main(String[] args) {
String str = "abcde";
// reverse
StringBuffer sb = new StringBuffer(str);
String reversedStr = sb.reverse().toString();
System.out.println(reversedStr);
}
}
🎈 2. char[] 로 변환하여 뒤집기
String 문자열을 charr 배열로 변환 후 역순으로 새로운 char 배열에 저장하여 문자열로 변환한다.
public class Main {
public static void main(String[] args) {
String str = "abcde";
char[] arr = str.toCharArray(); // String -> char[]
char[] reversedArr = new char[arr.length];
for(int i = 0; i < arr.length; i++) {
reversedArr[arr.length-1-i] = arr[i];
}
String reversedStr = new String(reversedArr);
System.out.println(reversedStr); // edcba
}
}
🎈 3. List 로 변환 후 Collections.reverse(list) 이용하여 뒤집기
reverse 메소드를 제공하는 Collections 클래스를 이용하기 위해 List<Character> 타입으로 변환 후 뒤집기를 수행한다.
public class Main {
public static void main(String[] args) {
String str = "abcde";
char[] arr = str.toCharArray(); // String => char[]
List<Character> list = new ArrayList<>();
for (char each : arr) { // char[] -> List
list.add(each);
}
// reverse
Collections.reverse(list);
ListIterator li = list.listIterator();
while(li.hasNext()) {
System.out.println(li.next()); // edcba
}
}
}
'공부 > Java' 카테고리의 다른 글
스트링 클래스의 문제점 (0) | 2024.06.25 |
---|---|
스트링버퍼 (0) | 2024.06.25 |
java.lang 패키지/오토박싱 (0) | 2024.06.25 |
Object와 오버라이딩 (0) | 2024.06.25 |
문자열 배열을 문자열로 변환 (String Array to String) (0) | 2023.05.04 |