我正在尝试使用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 ;
}
您的代码将替换与第一个字符匹配的所有字符。如果你的字符串是abcda
并且你运行你的函数,它将用你放的任何东西替换所有出现的a
。包括最后一个。
为了实现你的目标,你可能不应该使用replaceAll
。
你可以使用StringBuilder
。
StringBuilder builder = new StringBuilder(str);
myName.setCharAt(0, str2.charAt(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
你的功能运行正常,但你可能以错误的方式使用它。 对于这些字符串:
String str = "abaca";
String str2 = "x";
如果你这样做:
charChangeAt(str, str2);
这不会影响str
。
您必须将函数返回的值赋给str
:
str = charChangeAt(str, str2);
这会将str
的值更改为:
"xbxcx"