문자열 뒤집는 방법
문자열을 뒤집는다는 의미는 문자열에서 문자의 위치를 반전하는 것입니다.
예를 들어, 문자열 "Hello"를 입력하면 "olleH"가 출력됩니다.
이번 포스팅은 Java에서 문자열을 뒤집는 여러 방법 중 코드가 간결하고 사용하기 쉬운 방법을 소개합니다.
방법 1. 반복문
첫 번째 방법으로 가장 심플한 방법인 반복문을 사용합니다.
문자열의 마지막 위치부터 반복문을 실행하며, charAt() 메서드로 해당 위치의 문자를 새로운 문자열에 할당합니다.
public static void main(String args[]) {
String strValue = "Hello, Java";
String reverseStrValue = "";
for (int index = strValue.length() - 1; index >= 0; index--) {
reverseStrValue += strValue.charAt(index);
}
System.out.println("원본: " + strValue);
System.out.println("결과: " + reverseStrValue);
}
[실행 결과]
원본: Hello, Java
결과: avaJ ,olleH
방법 2. StringBuilder 또는 StringBuffer 클래스의 reverse 메서드
String 클래스와 달리 StringBuilder 클래스와 StringBuffer 클래스는 문자열을 뒤집을 수 있는 reverse() 메서드를 제공합니다.
StringBuilder 생성자 함수에 문자열을 전달하고 StringBuilder 객체에서 reverse() 메서드를 호출합니다.
다음 예제는 StringBuilder 클래스의 reverse() 메서드를 사용하여 문자열을 뒤집습니다.
public static void main(String args[]) {
String strValue = "Hello, Java";
StringBuilder sb = new StringBuilder(strValue).reverse();
System.out.println("원본: " + strValue);
System.out.println("결과: " + sb.toString());
}
[실행 결과]
원본: Hello, Java
결과: avaJ ,olleH
이번에는 StringBuffer 클래스를 사용하여 문자열을 뒤집습니다.
문자열을 뒤집는 방법은 StringBuilder 클래스와 동일합니다.
public static void main(String args[]) {
String strValue = "Hello, Java";
StringBuffer sb = new StringBuffer(strValue).reverse();
System.out.println("원본: " + strValue);
System.out.println("결과: " + sb.toString());
}
[실행 결과]
원본: Hello, Java
결과: avaJ ,olleH
방법 3. Collections의 reverse 메서드와 Stream API
마지막 방법으로 문자열을 Collections에서 제공하는 reverse() 메서드와 Java 1.8 이상부터 사용할 수 있는 Stream API를 사용합니다.
먼저, Character 타입의 빈 ArrayList를 생성합니다.
문자열의 각 문자를 ArrayList에 추가 후 Collections.reverse() 메서드에 ArrayList를 전달합니다.
Collections.reverse() 메서드가 호출되면, ArrayList의 요소가 반전됩니다.
ArrayList를 Stream에서 제공하는 기능을 사용하여 문자열로 변환합니다.
public static void main(String args[]) {
String strValue = "Hello, Java";
// 빈 ArrayList 생성
List<Character> charList = new ArrayList<>();
// 문자열의 각 문자를 ArrayList에 추가
for (char ch : strValue.toCharArray()) {
charList.add(ch);
}
// ArrayList의 요소가 반전
Collections.reverse(charList);
// Character 타입의 ArrayList를 문자열로 변환
String reverseStrValue = charList.stream()
.map(String::valueOf)
.collect(Collectors.joining());
System.out.println("원본: " + strValue);
System.out.println("결과: " + reverseStrValue);
}
[실행 결과]
원본: Hello, Java
결과: avaJ ,olleH
'Java > 문자열' 카테고리의 다른 글
[Java]문자열 대문자인지 소문자인지 확인하는 방법 (0) | 2022.08.18 |
---|---|
[Java]특정 길이만큼 문자열 자르기 (5) | 2022.08.18 |
[Java]InputStream을 문자열로 변환하는 방법 (0) | 2022.08.18 |
[Java]바이트 배열을 문자열로 변환(Byte Array to String) (0) | 2022.08.18 |
[Java]문자열에서 문자 가져오는 방법 (0) | 2022.08.17 |
댓글