2011-11-18 2 views
0

기본적으로 문자열을 가져 와서 앞뒤를 번갈아 가며 찾고 있습니다. 예를 들어, 다음 문자열이 있다고 가정 해 봅시다.프론트 백 문자열을 자바로

adnidor 

그것은 전면 교대 것 다시

First letter `a` 
Last letter `d` 
Second letter `n` 
Second to last `i` 
etc. 
to give `adnidor` in the end 

어떻게 이런 일을 할 수 있습니다 : 다음과 같이 출력 될 것이다

Android 

?

=======는

최종 솔루션은 다음과 같이 갔다 :

String r = ""; 
String s = "android"; 
int i = 0; 
int j = s.length() - 1; 
while (i < j) { 
    r += s.charAt(i++); 
    if (i < j) { 
     r+= s.charAt(j--); 
    } 
} 
if (s.length() % 2 == 0) { 
    int l = (s.length()/2) - 1; 
    int f = l + 1; 
    r = r + s.charAt(f); 
} 
else { 
    int l = ((s.length())/2); 
    r = r + s.charAt(l); 
} 
+1

포스트 코드. 만약 당신이 아직'String' 클래스를 시도하지 않았다면. 이 태그가 "암호화"된 이유는 무엇입니까? –

+0

시도해 보셨습니까? –

+0

어쩌면 그것은 태그가 암호화되지 않아야하지만 기본적으로 내 애플 리케이션에 문자열을 해싱하고있어, 그걸 더 혼란스럽게 만들고 문자열을 가져 가려하고 그 뒤쪽의 문자열을 확인한 후 문자열의 절반 만 가져옵니다. 만약 내가 해쉬 된 문자열을 두 번 넣는다면 쉽게 알아볼 수있을 것입니다. 아니면 단지 그것을 뒤집어서 더 혼란스럽게 만들려고합니다. – user577732

답변

1
String weird_transformation(String s) { 
    r = ""; 
    int i = 0; 
    int j = s.length() - 1; 
    while (i < j) { 
    r += s.charAt(i++); 
    if (i <= j) { 
     r+= s.charAt(j--); 
    } 
    } 
    return r; 
} 
+0

그 중간에되는 하나의 숯불 그래서 내가 솔루션을 위해 위의 감사와 같은 진술을 추가 왼쪽! – user577732