2016-08-08 1 views
-4

문자열 변수 str = "A man is no one!"이 있다고 가정하고 다른 문자열을 사용하지 않고 "!eno on si nam A"과 동일한 str 변수에 저장하려면이 문자열의 역순환이 필요합니다. 또는 변수. 누군가가이를 위해 가장 최적화 된 방법을 제공해 줄 수 있습니까?String을 역방향으로 변환하여 String 클래스 메소드를 사용하여 Java의 동일한 변수에 저장

public static String reverseRecursively(String str) { 
     //base case to handle one char string and empty string 
     if (str.length() < 2) { 
      return str; 
     } 
     return reverseRecursively(str.substring(1)) + str.charAt(0); 
    } 

이 일을 다른 방법 :

나는 이미 코드 조각 아래에 사용?

String class methods만을 사용하고 싶습니다.

+0

최적화되지 않은 방법을 제공해 주시겠습니까? – csmckelvey

답변

1

시도해보십시오. 이 새로운 StringBuilder의 인스턴스를 생성 않지만

new StringBuilder(str).reverse().toString() 

, 그것은 변수에 저장하지 않으며, 어떠한 새로운 객체가없는 문자열을 반대로 (가능하면) 매우 까다로운 일이 될 것입니다.

편집

당신이 String 방법 아무것도하지만를 사용하지 않기 때문에, 여기에 대신 루프와 함께 할 수있는 간단한 방법은,하지만 다시는 여전히 새 개체를 만듭니다.

char[] chars = new char[str.length()]; 
for (int i = 0; i < str.length(); i++) { 
    chars[str.length() - i - 1] = str.charAt(i); 
} 
String newStr = new String(chars); 
+0

StringBuilder를 사용하고 싶지 않습니다. 문자열 클래스 메서드 만 사용하여 역방향 싶습니다. –

+0

@ShashankShekher 답변을 업데이트했습니다. – apemanzilla

+0

다른 솔루션? –