2014-11-06 84 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[])