Computer >> 컴퓨터 >  >> 프로그래밍 >> Java

자바(Java)로 문자열 뒤집기 – 예제 코드와 단계별 알고리즘

자바에서 문자열 뒤집기란?

이 글에서는 자바(Java)로 문자열을 뒤집는 방법을 소개합니다. 문자열(String)은 하나 이상의 문자로 구성되며 큰따옴표(" ")로 묶어 표현하는 데이터 타입입니다. 문자열 뒤집기란 문자열을 오른쪽에서 왼쪽으로, 즉 거꾸로 출력하는 작업을 말합니다.

아래는 실제 실행 결과 예시입니다.

입력값:

The string is defined as: Java Program

기대 출력값:

The reversed string is: margorP avaJ

알고리즘

1단계 - 시작
2단계 - input_string(원본 문자열)과 reverse_string(역순 문자열)이라는 두 개의 String 변수, 그리고 temp라는 char 변수를 선언한다.
3단계 - 변수 값을 정의(초기화)한다.
4단계 - for 반복문으로 문자열을 순회하면서 i번째 문자를 temp에 저장한 뒤, 'temp + reverse_string'을 다시 reverse_string에 대입한다. 즉, 원본 문자열의 앞 문자를 역순 문자열의 맨 앞에 계속 붙이는 방식이다.
5단계 - 결과를 출력한다.
6단계 - 종료

예제 1: main 메서드에서 전체 로직 구현하기

이 예제에서는 모든 연산을 하나의 main 함수 안에서 함께 처리합니다.

public class ReverseString {
    public static void main (String[] args) {
        String input_string = "Java Program", reverse_string = "";
        char temp;
        System.out.println("The string is defined as: " + input_string);
        for (int i = 0; i < input_string.length(); i++) {
            temp = input_string.charAt(i);
            reverse_string = temp + reverse_string;
        }
        System.out.println("\nThe reversed string is: " + reverse_string);
    }
}

실행 결과

The string is defined as: Java Program

The reversed string is: margorP avaJ

예제 2: 객체 지향 방식으로 함수 분리하기

이 예제에서는 연산 로직을 별도의 함수로 캡슐화하여 객체 지향 프로그래밍 스타일로 구현합니다.

public class ReverseString {
    static void reverse(String input_string){
        String reverse_string = "";
        char temp;
        for (int i = 0; i < input_string.length(); i++) {
            temp = input_string.charAt(i);
            reverse_string = temp + reverse_string;
        }
        System.out.println("\nThe reversed string is: " + reverse_string);
    }
    public static void main (String[] args) {
        String input_string = "Java Program";
        System.out.println("The string is defined as: " + input_string);
        reverse(input_string);
    }
}

실행 결과

The string is defined as: Java Program

The reversed string is: margorP avaJ

더 간단한 방법: StringBuilder 활용하기

자바는 문자열 뒤집기를 위한 내장 기능도 제공합니다. StringBuilder 클래스의 reverse() 메서드를 사용하면 반복문 없이 한 줄로 문자열을 뒤집을 수 있습니다.

public class ReverseStringSimple {
    public static void main (String[] args) {
        String input_string = "Java Program";
        String reverse_string = new StringBuilder(input_string).reverse().toString();
        System.out.println("The reversed string is: " + reverse_string);
    }
}

마무리

for 반복문을 이용한 방식은 문자열 뒤집기의 기본 원리를 익히는 데 유용하지만, 매 반복마다 새로운 문자열 객체가 생성되어 시간 복잡도가 O(n²)입니다. 반면 StringBuilder의 reverse() 메서드는 O(n)으로 더 효율적이므로, 실무에서는 가독성과 성능 면에서 유리한 StringBuilder 사용을 권장합니다.