2013-03-05 37 views
0

我需要創建採用原始文本的程序,並使用新的特定字母替換originalText中的每個字母,然後將其輸出爲mixedLetterText。需要用另一個特定的字母替換輸入文本的每個字母

這是我的,但它只適用於第一個「String mixedLetterText = originalText.replace('a','w');」並且不會更改任何其他字母。我對這一切都很陌生,只是不知道什麼是錯的......無論如何,謝謝!請幫忙。

originalText.replace('h', 'u'); 

到:

public class MixLettersAndNumbers 
{ 

    public static void main(String[] args) 

    { 
     String originalText = "as we walk"; 


     String mixedLetterText = 
     originalText.replace('a', 'w'); 
     originalText.replace('s', 'e'); 
     originalText.replace('d', 'r'); 
     originalText.replace('f', 't'); 
     originalText.replace('g', 'y'); 
     originalText.replace('h', 'u'); 
     originalText.replace('j', 'i'); 
     originalText.replace('k', 'o'); 
     originalText.replace('l', 'p'); 
     originalText.replace('z', 's'); 
     originalText.replace('x', 'd'); 
     originalText.replace('c', 'f'); 
     originalText.replace('v', 'g'); 
     originalText.replace('b', 'h'); 
     originalText.replace('n', 'j'); 
     originalText.replace('m', 'k'); 
     originalText.replace('q', '1'); 
     originalText.replace('w', '2'); 
     originalText.replace('e', '3'); 
     originalText.replace('r', '4'); 
     originalText.replace('t', '5'); 
     originalText.replace('y', '6'); 
     originalText.replace('u', '7'); 
     originalText.replace('i', '8'); 
     originalText.replace('o', '9'); 
     originalText.replace('p', '0'); 

     //test it out 
     System.out.println("original = " + originalText); 
     System.out.println("mixed = " + mixedLetterText); 
    } 
} 
+0

這是否可能被錯誤標記?看起來像Java而不是JavaScript。 – 2013-03-05 03:12:49

+0

同意,這不是JavaScript。我對Java並不熟悉,但似乎必須在每個替換語句之前加上'String mixedLetterText ='。雖然我確定有人有更好的解決方案。 – 2013-03-05 03:34:20

回答

2

從更換所有(類似)線

originalText = originalText.replace('h', 'u'); 

replace()函數將返回文本的修改版本。

最後,變量originalText將包含文本的修改版本。

也就是說,

// no need to use mixedLetterText if you are not intended to keep originalText 
originalText = originalText.replace('a', 'w'); 
originalText = originalText.replace('s', 'e'); 
originalText = originalText.replace('d', 'r'); 
originalText = originalText.replace('f', 't'); 
originalText = originalText.replace('g', 'y'); 

...等等

+0

這確實奏效,但@kolink仍然是正確的,他們中的一些人不工作,因爲他們重複。有沒有快速解決這個問題? – LucasA618 2013-03-05 03:48:27

+0

是的。重新安排更換訂單 – Raptor 2013-03-05 03:56:20

1

是這個Java或JavaScript? Java對於JavaScript來說就像倉鼠一樣。

無論如何,你的代碼的字面意思是「將第一個替換分配給mixedLetterText,然後逐個計算所有其他替換並將其丟棄」。

根據您想如何工作,你可以只鏈中的替換:

String mixedLetterText = originalText 
     .replace('a','w').replace('s','e')........ 

但是,請記住,如果你有交叉,你可能有問題。例如,在代碼鏈中,如果輸入爲g,那麼輸出將是6,而不是像您所期望的y

如果您使用的是Java,那麼this question將幫助您找到一個函數來執行轉換。如果是Java 腳本,那麼this function將有所幫助。

+0

你是正確的...... g不打印6不是y。任何方式來快速解決這個問題? – LucasA618 2013-03-05 03:41:40

0

在您的代碼中,您只是試圖更改原始文本一次。 做出這些更改

String mixedLetterText=originalText.replace('s', 'e'); 
mixedLetterText=originalText.replace('d', 'r'); 
mixedLetterText=originalText.replace('f', 't'); 
mixedLetterText=originalText.replace('g', 'y'); 
mixedLetterText=originalText.replace('h', 'u'); 
mixedLetterText=originalText.replace('j', 'i'); 
mixedLetterText=originalText.replace('k', 'o'); 
mixedLetterText= originalText.replace('l', 'p'); 
mixedLetterText=originalText.replace('z', 's'); 
mixedLetterText=originalText.replace('x', 'd'); 
mixedLetterText=originalText.replace('c', 'f'); 
mixedLetterText=originalText.replace('v', 'g'); 
mixedLetterText=originalText.replace('b', 'h'); 
mixedLetterText=originalText.replace('n', 'j'); 
mixedLetterText=originalText.replace('m', 'k'); 
mixedLetterText=originalText.replace('q', '1'); 
mixedLetterText=originalText.replace('w', '2'); 
mixedLetterText=originalText.replace('e', '3'); 
mixedLetterText=originalText.replace('r', '4'); 
mixedLetterText=originalText.replace('t', '5'); 
mixedLetterText=originalText.replace('y', '6'); 
mixedLetterText=originalText.replace('u', '7'); 
mixedLetterText=originalText.replace('i', '8'); 
mixedLetterText=originalText.replace('o', '9'); 
mixedLetterText=originalText.replace('p', '0'); 
+0

這是不正確的。只有最後一行纔有效。 – Raptor 2013-03-05 03:54:50

+0

是的,你是正確的我忘了再次分配給同一個字符串 – Prakash 2013-03-05 05:37:08

相關問題