簡體   English   中英

Java字符串替換問題

[英]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")

另外,不建議使用空字符串的連接來引起從charString轉換。 考慮顯式調用Character.toStringString.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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM