簡體   English   中英

替換String中字符的所有實例

[英]Replace all instances of a character in a String

我正在嘗試創建一個方法,用一個新字符替換單詞中某個特定字符的所有實例。 這是我到目前為止:

public class practice {
public static void main(String[] args) {

    String test3 = updatePartialword("----", "test", 't');
    System.out.println(test3); }


public static String updatePartialword(String partial, String secret, char c) {
    String newPartial = "";
    int len = secret.length();
    for (int i=0; i<=secret.length()-1; i++){
        char x = secret.charAt(i);
        if (c==x) {
            String first = partial.substring(0,i);
            String second = partial.substring(i+1,len);
            newPartial = first+x+second;
        }


    }
        return newPartial;
}

}

我希望它返回t - t,但它只打印最后一個t。 任何幫助將不勝感激!

Java已經在String中有一個內置方法。 您可以使用replace()方法將String中給定字符的所有匹配項替換為另一個字符

    String str = "Hello";
    str.replace('l', '-'); //Returns He--o
    str.replace('H', '-'); //Returns -ello

我懷疑你正在尋找類似的東西

public static void main(String[] args) {
    String test3 = updatePartialword("----", "test", 't');
    System.out.println(test3);
}

public static String updatePartialword(String partial, String secret, char c) {
    char[] tmp = partial.toCharArray();

    for (int i = 0; i < secret.length(); i++) {
        char x = secret.charAt(i);
        if (c == x) {
            tmp[i] = c;
        }

    }
    return new String(tmp);
}

在您的代碼中,每次找到該字符時都會覆蓋String。 您應該每次都擴展字符串,而不是覆蓋。

public class practice {
  public static void main(String[] args) {
    String test3 = updatePartialword("----", "test", 't');
    System.out.println(test3); 
}

public static String updatePartialword(String partial, String secret, char c) {
    StringBuilder sb = new Stringbuilder();
    sb.append(""); // to prevent the Stringbuilder from calculating with the chars
    for (int i = 0; i < partial.lenght; i++)
      if (secret.charAt(i) == c)
        sb.append(c);
      else
        sb.append('-');
    return sb.toString();
  }

}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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