2014-11-06 61 views
-1

我試圖用9中的數字替換字符串中的元音來代替9。什麼是正確的方法來做到這一點?這是我在這個模組的唯一想法:可以使用foo.charAt(i)替換字符串中的字符嗎?

word.charAt(i)=vowelcount; 
vowelcount++; 

以上是在for循環中。詞是字串和vowelcount是誰與48的值開始,並在57

重置爲但這給我的錯誤一個字符:

required: variable

found: value

什麼是替代元音正確的方法一個int連續計數的字符串?

Sample input: The quick brown fox jumps over the lazy dog.

Sample output: Th0 q12ck br3wn f4x j5mps 6v7r th8 l9zy d0g.

+0

'char []'也許? – 2014-11-06 21:42:09

+2

字符串是不可變的,所以沒有。你必須用修改後的字符構造一個新的String對象。 – 2014-11-06 21:42:10

回答

4

你可以爲此使用一個stringbuilder。

StringBuilder myString = new StringBuilder("The quick brown fox jumps over the lazy dog."); 

,並使用

myString.setCharAt(); 
0

String S IN的Java是不可改變的。 這意味着一旦它們被實例化,它們的值就不能被改變。 替換String上的字符的正確方法是創建另一個String,由以前發生的任何事情構成,您要替換的字符以及後來的任何字符。 我將代碼實現留給讀者,因爲它看起來像你正在學習Java,這對你來說是一個很好的練習。

在你的具體情況下,你想迭代一個String,並建立另一個,所以它值得查看StringBuilder類。

作爲附加上下文,Java中的word.charAt(i)是一個表達式,且表達式不可分配。這將和做

3 = 4; 

您只能分配給變量(任何類型的)或數組位置。 如果字符串是一個char [],例如,你可以做

word[i] = vowelcount; 

這實際上讓你實現你想要的東西的另一種方式。將String轉換爲char[],然後在完成時轉回String。參見方法String.toCharArray()和構造函數String(char[])