Java替换字符串中的字符,变量中的给定值除外

Java替换字符串中的字符,变量中的给定值除外,java,Java,我需要一些帮助。 因此,任务如下: 创建一个要求输入主要短语的程序。请求保留在短语中的键字符串值。显示原始主短语的版本,其中所有字符都已替换为加号(“+”),但保留不变的键字符串值的外观除外。 样本输出: ------------------------------------------------ Enter main phrase: 12xy34 Enter key string:xy New Version: ++xy++ --------------------------------

我需要一些帮助。 因此,任务如下: 创建一个要求输入主要短语的程序。请求保留在短语中的键字符串值。显示原始主短语的版本,其中所有字符都已替换为加号(“+”),但保留不变的键字符串值的外观除外。 样本输出:

------------------------------------------------
Enter main phrase: 12xy34
Enter key string:xy
New Version: ++xy++
------------------------------------------------
Enter main phrase: 12xy34
Enter key string:1
New Version: 1+++++
------------------------------------------------
Enter main phrase: 12xy34xyabcxy
Enter key string:xy
New Version: ++xy++xy+++xy
这是我的密码:

import java.util.*;
 public class Corpuz_Kervin
{
    public static void main (String [] args)
    {
        Scanner input = new Scanner (System.in);
         String phrase,key= "";
        String plus = "+";


        System.out.print("Enter main phrase : ");
        phrase = input.nextLine();
        System.out.print("Enter key string : ");
        key = input.nextLine();



        for (int i = 0; i < phrase.length(); i++)
        {
            char x = phrase.charAt(i);
            if (x.contains(key))
            {
                System.out.print(phrase.replace(x),"+");
            }
            else 
            {
                System.out.print("Error");
            }
        }
    }
}
import java.util.*;
公共级科尔普乌克文
{
公共静态void main(字符串[]args)
{
扫描仪输入=新扫描仪(System.in);
字符串短语,key=“”;
字符串plus=“+”;
System.out.print(“输入主短语:”);
短语=input.nextLine();
System.out.print(“输入键字符串:”);
key=input.nextLine();
for(int i=0;i
有人能帮我吗
谢谢

为什么不使用replaceAll with not短语,使用这个表达式“?!({your phrase})”

x
是一个
字符
是一个
字符串
:条件不应该是
x.contains(key)
用这个代替你的循环:

System.out.println(phrase.replaceAll("[^" + key + "]", plus));

嗯,那么那里的代码将如何?我将把这个表达式放在哪里?import java.util.*;公共类Corpuz_Kervin{public static void main(String[]args){Scanner input=new Scanner(System.in);字符串短语,key;String plus=“+”;System.out.print(“输入主短语:”;短语=input.next();System.out.print(“输入键字符串:”;key=input.next();for(int i=0;i^
[]/code>的内部对字符进行否定。在您的示例中,
[^xy]
意味着所有不是大括号中字符的字符都将被替换。这意味着“123xy1y344x”将变为“++xy+y+++x”。这会有问题吗?不,我只是想要那个符号。谢谢你的帮助。这不是完全正确的-它还会将xy=>123y123y”替换为“++y+++y”,这是错误的。字符类模式将匹配短语中的任何字符,而不是整个短语。@SamDufel这是我在评论中写的内容。您应该发布实际输出。更好的方法是使用一个字符串
+
符号,并用关键字短语替换某些位置。查找所有偏移在原始字符串中出现的关键短语,并将其添加到一个加号字符串中。