[java] Java에서 문자열 반전

나는 한 "Hello World"라는 문자열 변수에 보관 hi.

인쇄해야하지만 그 반대입니다.

어떻게해야합니까? Java에 이미 내장 된 기능이 있다는 것을 알고 있습니다.

관련 : “Hello World”문자열의 각 개별 단어를 Java로 반전



답변

이것을 사용할 수 있습니다 :

new StringBuilder(hi).reverse().toString()

또는 JDK 1.5 이전 버전의 경우 동일한 API를 사용하는 java.util.StringBuffer대신 사용 StringBuilder하십시오. StringBuilder동시성에 대한 우려가없는 오늘날 선호되는 점에 대해 감사의 말을 전 합니다.


답변

내용은 온라인 심사 위원 문제를 허용하지 않습니다 StringBuilder또는 StringBuffer, 당신은 그것을 할 수있는 장소에서 사용하여 char[]다음과 같은 :

public static String reverse(String input){
    char[] in = input.toCharArray();
    int begin=0;
    int end=in.length-1;
    char temp;
    while(end>begin){
        temp = in[begin];
        in[begin]=in[end];
        in[end] = temp;
        end--;
        begin++;
    }
    return new String(in);
}


답변

public static String reverseIt(String source) {
    int i, len = source.length();
    StringBuilder dest = new StringBuilder(len);

    for (i = (len - 1); i >= 0; i--){
        dest.append(source.charAt(i));
    }

    return dest.toString();
}

http://www.java2s.com/Code/Java/Language-Basics/ReverseStringTest.htm


답변

String string="whatever";
String reverse = new StringBuffer(string).reverse().toString();
System.out.println(reverse);


답변

다음 두 가지 방법을 사용 하여이 작업을 수행하고 있습니다.

CHARACTERS의 역 문자열 :

public static void main(String[] args) {
    // Using traditional approach
    String result="";
    for(int i=string.length()-1; i>=0; i--) {
        result = result + string.charAt(i);
    }
    System.out.println(result);

    // Using StringBuffer class
    StringBuffer buffer = new StringBuffer(string);
    System.out.println(buffer.reverse());
}

WORDS로 문자열 뒤집기 :

public static void reverseStringByWords(String string) {
    StringBuilder stringBuilder = new StringBuilder();
    String[] words = string.split(" ");

    for (int j = words.length-1; j >= 0; j--) {
        stringBuilder.append(words[j]).append(' ');
    }
    System.out.println("Reverse words: " + stringBuilder);
}


답변

StringBuffer에서 Java 6 API를 살펴보십시오.

String s = "sample";
String result = new StringBuffer(s).reverse().toString();


답변

다음은 재귀를 사용하는 예입니다.

public void reverseString() {
    String alphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
    String reverseAlphabet = reverse(alphabet, alphabet.length()-1);
}

String reverse(String stringToReverse, int index){
    if(index == 0){
        return stringToReverse.charAt(0) + "";
    }

    char letter = stringToReverse.charAt(index);
    return letter + reverse(stringToReverse, index-1);
}