【发布时间】:2017-10-08 13:14:02
【问题描述】:
我正在尝试替换字符串中的字符
for (String word : stringArray){
int k = 33;
char d ="";
while (k < 64){
char c = k;
word = word.replace(c, ""); // THIS LINE GIVES AN ERROR
k++;
}
}
我正在尝试删除 ASCII id 32 (!) 和 ASCII id 64 (@) 之间的所有非字母字符,包括在内。我使用stringid.replace(char, char) 作为suggested here。
但是,替换的第二个参数中的"" 在 Eclipse 中被视为字符串,这会给出“类型不匹配”的错误(因为替换需要两个字符的参数)。
我尝试过'' 而不是"",但这似乎无法解决问题。我该怎么办?提前致谢。
编辑:将 word.replace(c, ""); 更改为 word = word.replace(c,""); 。感谢评论者指出这一点。但是,问题仍然存在。
【问题讨论】:
-
您忘记阅读链接到的答案的第一句话:Java 中的字符串是不可变的。 word.replace(c, "") 不会更改字符串,因为字符串是不可变的,无法更改。
-
谢谢。我会将有问题的行编辑为此
word = word.replace(c, "");...但是,我要问的问题仍然存在:( -
^ 完全重复,并确保阅读第二个答案,这是正确的。
-
@AndrewLi 谢谢!所以本质上,对于我想要做的事情, str replace 不是我需要的......你能建议一个替代方案吗?
标签: java string replace str-replace