[英]Java String replace issue
我有一个在Java String上使用replace方法的代码,但是它不起作用..请指出错误。
static String[] cavityMap(String[] grid) {
String[] ans = grid;
for(int i = 1; i<= grid.length-2; i++){
for(int j = 1; j<= grid[i].length()-2; j++){
int e = Integer.parseInt(grid[i].charAt(j) + "");
int t = Integer.parseInt(grid[i - 1].charAt(j) + "");
int b = Integer.parseInt(grid[i + 1].charAt(j) + "");
int l = Integer.parseInt(grid[i].charAt(j - 1) + "");
int r = Integer.parseInt(grid[i].charAt(j + 1) + "");
if(e > t && e > b && e > l && e > r){
ans[i] = ans[i].replace("X",(ans[i].charAt(j) + ""));
System.out.println(ans[i].replace("X",(ans[i].charAt(j) + "")));
}
}
}
return ans;
}
如果有条件的话,代码执行会进入..但是它打印的值与以前相同。.为什么它不将字符串替换为“ X”。
ans[i].replace("X",(ans[i].charAt(j) + ""))
将用ans[i].charAt(j) + ""
替换所有出现的"X"
ans[i].charAt(j) + ""
。
如果您打算将ans[i].charAt(j) + ""
替换为"X"
,则需要交换参数:
ans[i].replace((ans[i].charAt(j) + ""), "X")
另外,不建议使用空字符串的连接来引起从char
到String
转换。 考虑显式调用Character.toString
或String.valueOf
ans[i].replace(String.valueOf(ans[i].charAt(j)), "X")
或更好的是,由于您的替换项是单个char
,因此只能使用该类型
ans[i].replace(ans[i].charAt(j), 'X')
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.