코딩 스쿨 Java

언어선택 : HTMLCSSJAVAJAVASCRIPTMYSQLSQL PHP

Java_Reverse a String

자바에서 문자열 뒤집기 (Java Reverse a String)

자바에서 문자열을 뒤집는 방법은 여러 가지가 있으며, 각 방법은 상황에 맞게 사용할 수 있습니다. 문자열을 뒤집는 대표적인 방법으로는 반복문, StringBuilder, 재귀 함수 등을 사용할 수 있습니다.

1. StringBuilder를 사용한 문자열 뒤집기

StringBuilder 클래스는 자바에서 가변 문자열을 처리하는 데 사용됩니다. reverse() 메서드를 제공하여 문자열을 쉽게 뒤집을 수 있습니다.

1.1 StringBuilder를 사용한 문자열 뒤집기 예제

public class Main {
    public static void main(String[] args) {
        String original = "Hello, World!";

        // StringBuilder를 사용해 문자열 뒤집기
        StringBuilder sb = new StringBuilder(original);
        String reversed = sb.reverse().toString();

        // 결과 출력
        System.out.println("원본 문자열: " + original);
        System.out.println("뒤집힌 문자열: " + reversed);
    }
}

설명:

  • *StringBuilder*는 가변 문자열 클래스이며, reverse() 메서드를 사용하여 문자열을 뒤집을 수 있습니다.
  • toString() 메서드를 사용해 StringBuilder 객체를 문자열로 변환합니다.

출력:

원본 문자열: Hello, World!
뒤집힌 문자열: !dlroW ,olleH

2. 반복문을 사용한 문자열 뒤집기

문자열을 하나씩 읽어서 뒤에서부터 앞으로 새로운 문자열을 구성할 수 있습니다. 이 방법은 char 배열반복문을 사용하여 직접 구현할 수 있습니다.

2.1 for 반복문을 사용한 문자열 뒤집기

public class Main {
    public static void main(String[] args) {
        String original = "Hello, World!";
        String reversed = "";

        // 반복문을 사용해 문자열을 뒤집기
        for (int i = original.length() - 1; i >= 0; i--) {
            reversed += original.charAt(i);
        }

        // 결과 출력
        System.out.println("원본 문자열: " + original);
        System.out.println("뒤집힌 문자열: " + reversed);
    }
}

설명:

  • charAt() 메서드를 사용하여 문자열의 각 문자를 가져와 역순으로 더해 새로운 문자열을 만듭니다.
  • for 반복문을 통해 마지막 문자부터 첫 번째 문자까지 반복하여 처리합니다.

출력:

원본 문자열: Hello, World!
뒤집힌 문자열: !dlroW ,olleH

2.2 성능 개선: char 배열을 사용한 문자열 뒤집기

문자열을 char 배열로 변환한 후, 배열의 요소들을 역순으로 배치하는 방법을 사용하면 성능을 개선할 수 있습니다.

public class Main {
    public static void main(String[] args) {
        String original = "Hello, World!";

        // 문자열을 char 배열로 변환
        char[] charArray = original.toCharArray();
        String reversed = "";

        // 배열을 역순으로 순회하며 문자열에 추가
        for (int i = charArray.length - 1; i >= 0; i--) {
            reversed += charArray[i];
        }

        // 결과 출력
        System.out.println("원본 문자열: " + original);
        System.out.println("뒤집힌 문자열: " + reversed);
    }
}

설명:

  • toCharArray() 메서드를 사용하여 문자열을 char 배열로 변환합니다.
  • 성능을 고려해 **StringBuilder*를 사용하는 것이 더 효율적이지만, 위 방법도 간단한 문자열 작업에 적합합니다.

3. 재귀 함수를 사용한 문자열 뒤집기

재귀 함수는 문제를 더 작은 부분으로 나누어 해결하는 방법입니다. 문자열을 뒤집는 문제도 재귀를 통해 해결할 수 있습니다.

3.1 재귀 함수를 사용한 문자열 뒤집기 예제

public class Main {
    public static void main(String[] args) {
        String original = "Hello, World!";

        // 재귀 함수를 사용해 문자열 뒤집기
        String reversed = reverseString(original);

        // 결과 출력
        System.out.println("원본 문자열: " + original);
        System.out.println("뒤집힌 문자열: " + reversed);
    }

    // 재귀 함수로 문자열을 뒤집는 메서드
    public static String reverseString(String str) {
        if (str.isEmpty()) {
            return str;
        }
        return reverseString(str.substring(1)) + str.charAt(0);
    }
}

설명:

  • 재귀 함수는 문자열의 첫 문자를 제외한 나머지 문자열을 먼저 뒤집은 후, 마지막에 첫 문자를 추가하는 방식으로 동작합니다.
  • substring() 메서드를 사용해 문자열의 첫 문자를 제외한 부분을 재귀적으로 호출합니다.

출력:

원본 문자열: Hello, World!
뒤집힌 문자열: !dlroW ,olleH

4. StringUtils를 사용한 문자열 뒤집기 (Apache Commons)

외부 라이브러리인 Apache Commons LangStringUtils 클래스는 문자열을 뒤집는 기능을 제공합니다. 이 방법은 라이브러리를 사용하는 프로젝트에서 매우 간단하게 문자열을 뒤집을 수 있는 방법입니다.

4.1 StringUtils를 사용한 문자열 뒤집기

import org.apache.commons.lang3.StringUtils;

public class Main {
    public static void main(String[] args) {
        String original = "Hello, World!";

        // StringUtils를 사용해 문자열 뒤집기
        String reversed = StringUtils.reverse(original);

        // 결과 출력
        System.out.println("원본 문자열: " + original);
        System.out.println("뒤집힌 문자열: " + reversed);
    }
}

설명:

  • StringUtils.reverse() 메서드를 사용하여 문자열을 간단하게 뒤집습니다.
  • 이 방법은 Apache Commons Lang 라이브러리를 사용해야 하므로, 해당 라이브러리를 프로젝트에 추가해야 합니다.

Apache Commons Lang 의존성 추가 (Maven):

<dependency>
    <groupId>org.apache.commons</groupId>
    <artifactId>commons-lang3</artifactId>
    <version>3.12.0</version>
</dependency>

출력:

원본 문자열: Hello, World!
뒤집힌 문자열: !dlroW ,olleH

요약

  • *StringBuilder*를 사용하면 내장된 reverse() 메서드를 통해 간편하게 문자열을 뒤집을 수 있습니다.
  • 반복문을 사용하여 문자열을 직접 역순으로 처리할 수 있습니다.
  • 재귀 함수를 사용하면 재귀적으로 문자열을 처리하여 뒤집을 수 있습니다.
  • Apache Commons LangStringUtils 클래스를 사용하여 외부 라이브러리로 문자열을 뒤집을 수 있습니다.

문자열을 뒤집는 작업은 자바에서 다양한 방식으로 구현할 수 있으며, 각 방법은 상황에 맞게 선택할 수 있습니다.


copyright ⓒ 스타트코딩 all rights reserved.
이메일 : startcodingim@gamil.com