我试图制作一个程序来替换这句话中的单词,而这些程序是由用户想要替换的单词组成的:
"鸭子在鸭子跳舞时嘎嘎叫。快乐的鸭子!悲伤的鸭子!"
但是,问题在于我不知道如何用大写字母,复数形式,标点符号(鸭子,鸭子,鸭子!,鸭子等等)替换鸭子的版本
我目前有这个版本,但它所做的只是替换" duck",我不知道如何做其他版本。
public static void main(String[] args) {
Scanner keyboard = new Scanner(System.in);
String story = "The duck quacked at the ducks dancing. Happy ducks! Sad Ducks!";
System.out.println("What word do you want replaced?");
String replaceWord = keyboard.nextLine();
story = story.replaceAll("\\bduck\\b", replaceWord);
System.out.println(story);
}
答案 0 :(得分:1)
使用
replaceAll
忽略复数,大写字母和标点符号?
通过使用\\b
包围模式,您已经很好地管理了标点符号。
要忽略大写(忽略大小写),您可以在模式前添加(?i)
,如下所示:
story = story.replaceAll("(?i)\\bduck\\b", replaceWord);
处理复数...这是特定于语言的,通常非常不规则。 如果你想处理类似的东西,那么你需要一个单数和复数形式的字典。即便如此,也可能存在一些特殊词语的漏报。