如何修复java代码中的ReplaceAll函数
我正在尝试使用replace all函数将字符串中第一个字符的所有匹配项替换为另一个字符。但是,当我运行该函数时,不会发生任何更改。我试图以原始字符串的第一个字符为目标,然后执行替换,但没有成功。下面是我的代码片段如何修复java代码中的ReplaceAll函数,java,replaceall,Java,Replaceall,我正在尝试使用replace all函数将字符串中第一个字符的所有匹配项替换为另一个字符。但是,当我运行该函数时,不会发生任何更改。我试图以原始字符串的第一个字符为目标,然后执行替换,但没有成功。下面是我的代码片段 public static String charChangeAt(String str, String str2) { //str = x.xy //str2 = d.w String res = str.replaceAll(Character.t
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 ;
}
您的代码将替换与第一个字符匹配的所有字符。如果您的字符串是
abcda
,并且您运行了您的函数,那么它将用您输入的内容替换所有出现的a
。包括最后一个
为了实现您的目标,您可能不应该使用replaceAll
您可以使用StringBuilder
StringBuilder builder = new StringBuilder(str);
myName.setCharAt(0, str2.charAt(0));
你的函数运行得很好,但你可能用错了
对于这些字符串:
String str = "abaca";
String str2 = "x";
如果您这样做:
charChangeAt(str, str2);
这不会影响str
必须将函数返回的值赋给
str
:
str = charChangeAt(str, str2);
这将把str
的值更改为:
"xbxcx"
如果要用另一个字符替换字符串中第一个字符的所有匹配项,可以使用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
对我来说,
System.out.println(charChangeAt(“d.dx”,“d.w”)代码>输出:d.w.d.wx
。肯定是别的地方出了问题。你怎么调用这个方法?我试着在循环中调用它。因此,基本上我在一个字符串数组中循环,并将第一个字符的出现次数更改为所讨论字符串的其他字符。