我可以使用foo.charAt(i)替换字符串中的字符吗?

时间:2014-11-06 21:39:40

标签: java

我正在尝试将字符串中的元音替换为连续重置为9的数字。这样做的正确方法是什么?这是我对这个人的唯一想法:

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

以上是for循环。 word是一个字符串,而vowelcount是一个以值48开头并重置为57的字符。

但这给了我错误:

  

必需:变量

     

发现:价值

使用连续计数的int替换String中元音的正确方法是什么?

  

样品输入:快速的棕色狐狸跳过懒狗。

     

样品输出:Th0 q12ck br3wn f4x j5mps 6v7r th8 l9zy d0g。

2 个答案:

答案 0 :(得分:4)

你可以使用stringbuilder。

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

并使用

myString.setCharAt();

答案 1 :(得分:0)

Java中的

String是不可变的。 这意味着一旦实例化它们的值就无法更改。 替换String上的字符的正确方法是创建另一个String,由之前的任何内容组成,您要替换的字符以及随后的内容。 我将代码实现留给读者,因为看起来你正在学习Java,这对你来说是一个很好的练习。

在您的具体情况下,您希望迭代String并构建另一个,因此值得查看StringBuilder类。

作为附加上下文,Java中的word.charAt(i)是一个表达式,表达式不可分配。这与做

相同
3 = 4;

您只能分配给变量(任何类型)或数组位置。 例如,如果您的字符串是char [],那么您可以完成

word[i] = vowelcount;

这实际上为您提供了另一种实现您想要的方式。将您的String转换为char[],然后在完成后转回String。请参阅方法String.toCharArray()和构造函数String(char[])