Java String reverse (문자열 뒤집기)
자바에서 문자열을 다루며 빈번하게 하는 작업 중 하나가 뒤집기(reverse)이다.
자바에서 문자열을 뒤집을 수 있는 방법 중 몇 가지를 소개한다.
(String 클래스에 reverse() 메서드가 있으면 좋을 텐데 없다.)
문자열 뒤집기 예시 : "abcde" -> "edcba"
1. StringBuilder, StringBuffer 를 이용
reverse() 메소드를 제공하는 StringBuilder/StringBuffer 클래스를 이용한다.
바꾸고 싶은 문자열을 이용하여 StringBuilder 또는 StringBuffer 객체를 생성 후에 제공되는 reverse() 메서드를 사용한다.
public class String_Reverse_Practice {
public static void main(String[] args) {
String str = "abcde";
// reverse
StringBuffer sb = new StringBuffer(str);
String reversedStr = sb.reverse().toString();
System.out.println(reversedStr); // edcba
}
}
StringBuffer에 대한 추가 설명은 기존에 정리한 링크를 남겨둔다.
2020/12/13 - [Dev/JAVA] - StringBuffer(StringBuilder) 클래스 기본 및 사용
2. char[] 로 변환하여 뒤집기
String 문자열을 char배열로 변환 후 역순으로 새로운 char배열에 저장하여 문자열로 변환한다.
좀 돌아가는 느낌이 들지만 참고로 봐둔다.
public class String_Reverse_Practice {
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 String_Reverse_Practice {
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.print(li.next()); // edcba
}
}
}
'개발 > JAVA' 카테고리의 다른 글
[Java] StringTokenizer 기본 및 사용법 (0) | 2020.12.15 |
---|---|
[Java] File 클래스 기본 (0) | 2020.12.14 |
StringBuffer(StringBuilder) 클래스 기본 및 사용 (0) | 2020.12.13 |
String 메소드 살펴보기 (0) | 2020.12.12 |
String 생성자(생성자 종류 및 예시) (0) | 2020.12.12 |