我今年 16 岁,正在尝试学习 Java,我叔叔给了我一篇论文,其中涉及 Java 的内容。其中之一就是编写并执行一个程序,该程序将接受扩展消息作为字符串,例如
Each time she saw the painting, she was happy
并将“she”一词替换为“he”一词。
Each time he saw the painting, he was happy.
这部分很简单,但他希望我能够采用任何形式的 she 并将其替换为他喜欢的形式(she
为 he
,She
到他
,她?
到他?
,她。
到他。
、she'
到 he'
等等)。有人可以帮我制作一个程序来完成这个任务吗?
我有这个
public static void main(String[] args) {
Scanner keyboard = new Scanner(System.in);
System.out.println("Write Sentence");
String original = keyboard.nextLine();
String changeWord = "he";
String modified = original.replaceAll("she", changeWord);
System.out.println(modified);
}
如果这不是找到此类问题答案的正确网站,您能否将我重定向到可以回答此类问题的网站?
最佳答案
最好的方法是使用正则表达式 (regex)。正则表达式允许您匹配单词的模式或类别,以便您可以处理一般情况。考虑您已经列出的案例:
(她对他,她对他,她?对他?,她。对他。,她'对他'等等)
这些案例有什么共同点?您能想到一些适用于所有此类转换的一般规则吗?
但也要考虑一些您没有列出的情况:例如,正如您现在编写的那样,您的代码会将单词“ashes”更改为“ahes”,因为“ashes” ” 包含“她”。正确编写的正则表达式可以让您避免这种情况。
在深入研究正则表达式之前,尝试用简单的英语表达一条或一组规则,说明您想要替换的内容以及应该替换的内容。
然后,learn some regex并尝试应用这些规则。
最后,尝试为各种情况编写一些测试(即使用 JUnit),以便您可以了解代码适用于哪些情况以及不适用于哪些情况。
完成此操作后,如果某些内容仍然不起作用,请随时在此处发布一个新问题,向我们展示您的代码并解释什么不起作用。我们很乐意提供帮助。
关于java - 替换字符串中的子字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35850005/