如何在Java代码中修复ReplaceAll函数

时间:2019-04-05 20:54:02

标签: java replaceall

我正在尝试使用replace all函数将一个字符串中所有出现的第一个字符替换为另一个字符。但是,当我运行该功能时,不会发生任何变化。我尝试将原始字符串的第一个字符作为目标,然后进行替换,但是没有运气。以下是我的代码片段。

public static String charChangeAt(String str, String str2) {  

    //str = x.xy
    //str2 = d.w

    String res = str.replaceAll(Character.toString(str.charAt(0)), str2);

    return res ;
}  

3 个答案:

答案 0 :(得分:0)

您的代码将替换所有与第一个字符匹配的字符。如果您的字符串是abcda,并且您运行了函数,它将用您放置的所有内容替换a的所有出现。包括最后一个。

要实现目标,您可能不应该使用replaceAll

您可以使用StringBuilder

StringBuilder builder = new StringBuilder(str);
myName.setCharAt(0, str2.charAt(0));

答案 1 :(得分:0)

您的功能工作正常,但您可能使用了错误的方式。
对于这些字符串:

String str = "abaca";
String str2 = "x";

如果您这样做:

charChangeAt(str, str2);

这不会影响str
您必须将函数返回的值分配给str

str = charChangeAt(str, str2);

这会将str的值更改为:

"xbxcx"

答案 2 :(得分:0)

如果要用一个字符串替换所有出现的第一个字符,可以使用 replace 代替 replaceAll 。下面是代码段。

String str = "x.xy";
String str2 = "d.w";
String res = str.replace(Character.toString(str.charAt(0)), str2);
return res; // will output d.w.d.wy