2012-03-01 3 views
1

자바에서 역순으로 문자열을 사용자 정의 할 수있는 방법이 있습니까? 예를 들어, 이것은 샘플 입력입니다.맞춤형 문자열 역순 자바

큰 푸른 새가 날고 있습니다.

예를 들어, 3과 같이 문자열의 일부분을 뒤집을 수있는 방법이 있습니까?

그래서 출력은 다음과 같습니다

이 Theib g BEUL 양방향 dris의 ylfing.

문자열은 3 자마다 역순입니다. 이것이 가능한가?

+0

요아킴,이 웹 페이지는 많은 질문에 대한 답입니다! 멋진 것. – Alex

+1

아니요, Java에서는 불가능합니다. 너무 복잡합니다. 짝수 개의 문자 뒤에서 만 뒤집을 수 있습니다. 이상한 제한. ;-) –

답변

2

방법론 : 입력 문자열의 모든 문자를 매개 변수 (예 : case param = 3)로 반복합니다. 부울 플래그를 사용하여 뒤집을 부분을 결정합니다. 부분 부분 문자열을 되돌릴 수 없으면 결과에 추가하고, 그렇지 않으면 StringBuilder 객체를 사용하여 결과의 ​​반대 부분을 추가합니다. 이 코드를 사용해보십시오. 도움이 되었기를 바랍니다.

public static String customizedReverse(String str, int param) 
{ 
    String result = ""; 
    boolean reverse = false; 
    StringBuilder sb = null; 
    int size = str.length(), i = 0; 

    if(param > size) 
     return str; 

    for (i = 0; i < (size/param)*(param); i += param) 
    { 
     String temp = str.substring(i, i + param); 
     if (!reverse) 
      result += temp; 
     else 
     { 
      sb = new StringBuilder(temp); 
      result += sb.reverse(); 
     } 
     reverse = !reverse; 
    } 
    // Appending the remaining part of the string  
    if (!reverse) 
     result += str.substring(i, size); 
    else 
    { 
     sb = new StringBuilder(str.substring(i, size)); 
     result += sb.reverse(); 
    } 

    return result; 
}