Java 用另一个字符串中的每个字符替换字符串中的字符

Java 用另一个字符串中的每个字符替换字符串中的字符,java,string,replaceall,Java,String,Replaceall,本质上,我需要编写一个string方法,该方法接收两个字符串参数,并将第二个字符串中存在的每个字符替换为第一个字符串中的“”。例如,第一个字符串toBeFixed=“我有一个很棒的AMD CPU。我也喜欢奶酪。”和第二个字符串toReplaceWith=“oils”返回的字符串将是“我有一个wnderfu AMD CPU。我有一个ke cheee。” 以下是我得到的: public class removeChars { public static String removeCh

本质上,我需要编写一个string方法,该方法接收两个字符串参数,并将第二个字符串中存在的每个字符替换为第一个字符串中的“”。例如,第一个
字符串toBeFixed=“我有一个很棒的AMD CPU。我也喜欢奶酪。”
和第二个
字符串toReplaceWith=“oils”
<代码>返回的字符串将是“我有一个wnderfu AMD CPU。我有一个ke cheee。”

以下是我得到的:

    public class removeChars
{
    public static String removeChars(String str, String remove) 
        {
            String fixed = str.replaceAll(remove,""); 

            return(fixed);
        }

}
我不确定这是否是对replaceAll方法使用方式的误解,因为我看到过类似的情况

str = str.replaceAll("[aeiou]", "");
理想情况下,我会想出一种方法,把第二个字符串
(remove)
扔进去,然后处理掉,但我不确定这是否可行。我感觉这是一个稍微复杂一点的问题。。。我不熟悉数组列表,字符串的不变性似乎会给我带来一些问题


此方法应该能够处理输入的任何值的字符串。任何帮助或指导都将不胜感激

String.replaceAll
将正则表达式语句作为其第一个参数。匹配
“机油”
这将特别匹配短语“机油”

相反,你在帖子中的想法是正确的。只要删除字符串不包含括号、句点等保留正则表达式符号(我不确定是否有重复的字符),匹配
“[“+remove+”]”“
就可以了


如果是,则首先过滤删除字符串

这应该行得通
replace
的工作原理与
replaceAll
的工作原理类似-仅使用值而不是正则表达式

public class removeChars {
    public static String removeChars(String str, String remove) {
        String fixed = str; 

        for(int index = 0; index < remove.length; index++) {
            fixed = fixed.replace(remove.substring(index, index+1), "");
            // this replaces all appearances of every single letter of remove in str
        }

        return(fixed);
    }
}
公共类removeChars{
公共静态String removeChars(String str,String remove){
字符串固定=str;
for(int index=0;index
也许不是最有效的解决方案,但它很简单:

public class removeChars {
    public static String removeChars(String str, String remove) {
        String fixed = str;

        for(int i = 0; i < remove.length(); i++) 
             fixed = fixed.replaceAll(remove.charAt(i)+"","");  

        return fixed;
    }
}
公共类removeChars{
公共静态String removeChars(String str,String remove){
字符串固定=str;
对于(int i=0;i
可根据需要工作。谢谢我不确定我是否理解这种语法为什么有效。连接在这里的作用是什么?正如我所说,
replaceAll
将(regex)语句作为输入。正则表达式语法是这样的,括号表示一组可能的字符-任何其他未修改的字符集都是文字集。这个链接值得一读。Regex功能强大且有用。