Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/321.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/EmptyTag/138.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Java中交换单词_Java - Fatal编程技术网

在Java中交换单词

在Java中交换单词,java,Java,我是Java的新手,希望交换输入到程序中的两个单词,然后保存为字符串。我包括了一个if语句,以确保输入了我要切换的两个单词 Scanner in = new Scanner(System.in); System.out.println("Please enter at least one thing you love and one thing you hate using the words hate and love: "); String loveHate = in.nextL

我是Java的新手,希望交换输入到程序中的两个单词,然后保存为字符串。我包括了一个if语句,以确保输入了我要切换的两个单词

  Scanner in = new Scanner(System.in);
  System.out.println("Please enter at least one thing you love and one thing you hate using the words hate and love: ");
  String loveHate = in.nextLine();



  if (loveHate.indexOf( "love" ) == -1 || loveHate.indexOf( "hate" ) == -1 ){
    System.out.println("Please include the words love and hate.");
    return; 
  }

我想用用户输入的句子切换单词love和hate,然后用切换的单词重新打印一个新字符串

如果您不希望输入中的文本“xxxx”是标准交换,那么这是一种粗略的方式:

...
String loveHate = in.nextLine();

String hateLove = loveHate.replaceAll("love", "xxxx");
       hateLove = hateLove.replaceAll("hate", "love");
       hateLove = hateLove.replaceAll("xxxx", "hate");

System.out.println("Changed "+loveHate+" into "+hateLove);

很高兴知道,但是你试过什么,你的问题是什么?我试过loveHate.replaceAll(“恨”,“爱”),这很有效,但它只切换和替换一个词,而不是用相反的词替换两个词。我需要一个可以接受用户输入的东西(比如说“我讨厌猫和狗”),并切换单词love和hate,这样它就会打印出“我喜欢猫和讨厌狗”。是的,你需要一个临时字符串,这样你就不会失去一半-见下面我的答案。@DNA还有一件事。如果你只想改变“爱”和“恨”这两个独立的词,那么当前的解决方案是不正确的。使用
replaceAll
,类似丁香的单词将被更改为chate。如果你不想发生这种情况,你必须将字符串拆分为单个单词,检查整个单词是否完全匹配,进行更改,然后重新组合成一个句子。+1好的解决方案。改用
replaceAll()
。否则你就得做很多次。哦,是的,非常正确。将编辑答案。这非常有效!但是,我该如何重印原文呢?可以将loveHate=loveHate.replaceAll(“爱”,“xxxx”)更改为loveHate1=loveHate.replaceAll(“爱”,“xxxx”);然后打印原始版本和重新格式化的版本?@user1701604保存原始版本的副本。使用用户不会输入的字符,例如空字符\0,而不是“xxxx”作为临时替换。