我正在尝试使用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 ;
}
答案 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