【发布时间】:2019-12-16 14:14:28
【问题描述】:
我的主要目的是将标签中存储的字符存储到具有相同长度的String。
所以我尝试使用for 循环和方法replace(oldChar, newChar) 将我在开头声明的String 的每个字符替换为选项卡中相同位置的字符。
public static void main(String[] args) {
String card = "xxxx";
char[] code = {'0', '1', '2', '3',};
for (int i = 0; i < code.length-1; i++) {
card.replace(card.charAt(i), code[i]);
}
System.out.println(card);
}
我期待0123的输出,但是当我运行代码时,它显示了原始字符串值(xxxx),好像for循环没用一样。
【问题讨论】:
-
docs.oracle.com/javase/7/docs/api/java/lang/… 返回一个新字符串。旧字符串未更改。
-
如果您想做这样的事情(正如您所提到的),您可能希望将
card的类型更改为char[]...如果需要,在之后返回String操纵。 -
@hesseux 正如@Andreas 指出的那样,
replace替换了所有内容,因此此代码将永远无法工作。我想指出,如果您使用replace,因为您看到了replaceAll,它们都替换所有出现,只是使用不同的方式。感到困惑是很常见的事情。
标签: java eclipse for-loop replace