在Java中交换单词
我是Java的新手,希望交换输入到程序中的两个单词,然后保存为字符串。我包括了一个if语句,以确保输入了我要切换的两个单词在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
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”作为临时替换。