Java에서 문자열을 반전시키는 방법

bbangho·2023년 9월 25일

java

목록 보기
11/12
post-thumbnail

시간 비교를 하기위해 각 메소드는 10000번씩 반복하여 실행시키겠다.

static final String word = "Hello World!";
    public static void main(String[] args) {

        long start = System.currentTimeMillis();
        for(int i = 1; i<= 1000; i++){
            method1(word);
        }
        long end = System.currentTimeMillis();

        System.out.println("method1 time : " + (end - start) );

    }

StringBuffer, StringBuilder를 이용하여 반전시키기

static String method1(String string){
        return new StringBuffer(string).reverse().toString();
    }

10000: 2 ms

Stack을 이용하여 반전시키기

static String method2(String string){
        Stack<Character> stack = new Stack<Character>();

        char[] str = string.toCharArray();
        for(int i = 0; i < str.length; i++){
            stack.push(str[i]);
        }

        int k = 0;

        while (!stack.empty()){
            str[k++] = stack.pop();
        }

        return String.copyValueOf(str);


    }

10000: 9ms

char array를 이용하여 반전시키기

        int n = str.length();
 
        char[] temp = new char[n];
 
        for (int i = 0; i < n; i++) {
            temp[n - i - 1] = str.charAt(i);
        }
 
        return String.copyValueOf(temp);

10000: 2ms

char array를 이용하여 반전시키기2

static String method4(String string){


        char[] c = string.toCharArray();

        for (int l = 0, h = string.length() - 1; l < h; l++, h--)
        {
            char temp = c[l];
            c[l] = c[h];
            c[h]
            = temp;
        }

        return String.copyValueOf(c);
    }
    

결론

chararray를 이용하여 문자열을 반전시키는것이 가장 빠르다.

참고: https://www.techiedelight.com/ko/10-ways-reverse-a-string-java/

profile
2024. 06.17

0개의 댓글