2011-11-18 163 views
0

基本上我正在尋找一個字符串,只是在正面和背面交替。例如,假設我有以下字符串。在Java中返回一個字符串

Android 

那麼這會是這樣的輸出:

adnidor 

它會前和之間切換回

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

怎麼會是這樣做呢?

=======

最終的解決方案是這樣的:

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

這遺漏了一個字符是中間,所以我添加了一個if語句像上面的感謝解決方案雖然! – user577732