[英]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.