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

问题描述 投票:-1回答:3

我正在尝试使用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 ;
}  
java replaceall
3个回答
0
投票

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

为了实现你的目标,你可能不应该使用replaceAll

你可以使用StringBuilder

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

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

0
投票

你的功能运行正常,但你可能以错误的方式使用它。 对于这些字符串:

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

如果你这样做:

charChangeAt(str, str2);

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

str = charChangeAt(str, str2);

这会将str的值更改为:

"xbxcx"
© www.soinside.com 2019 - 2024. All rights reserved.