如何在Java中查找文本文件里以a结尾的单词并追加r?
Java实现:查找电影剧本中以a结尾的单词并追加字母r
没问题,我来帮你搞定这个需求!下面是针对电影剧本这类文本的具体实现思路和代码示例:
实现思路
- 读取文件内容:用Java 11+提供的
Files.readString方法快速读取文本文件,比传统IO类更简洁高效。 - 精准匹配单词:借助正则表达式定位以小写字母a结尾的完整单词,这里重点要用到单词边界规则,避免误匹配单词中间的a字符。
- 替换并保存结果:把符合条件的单词末尾追加r,然后写入新文件(推荐不要直接覆盖原文件,防止数据丢失)。
完整代码示例
import java.io.IOException; import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; import java.util.regex.Matcher; import java.util.regex.Pattern; public class MovieScriptWordModifier { public static void main(String[] args) { // 请替换成你的实际文件路径 String inputScriptPath = "your/movie_script.txt"; String outputScriptPath = "your/modified_movie_script.txt"; try { // 读取原剧本内容 String scriptText = Files.readString(Paths.get(inputScriptPath)); // 正则表达式:匹配以小写a结尾的完整单词 // 如果需要兼容大写A结尾的单词,把正则改为 "(?i)\\b(\\w+a)\\b" Pattern targetPattern = Pattern.compile("\\b(\\w+a)\\b"); Matcher matcher = targetPattern.matcher(scriptText); // 替换操作:在匹配到的单词末尾追加r String modifiedScript = matcher.replaceAll("$1r"); // 将修改后的内容写入新文件 Files.writeString(Path.of(outputScriptPath), modifiedScript); System.out.println("处理完成!修改后的剧本已保存到:" + outputScriptPath); } catch (IOException e) { System.err.println("处理文件时出现错误:" + e.getMessage()); e.printStackTrace(); } } }
关键细节说明
- 正则表达式解析:
\b(\w+a)\b\b:单词边界,确保我们匹配的是独立完整的单词(比如不会把"drama"里的a当成单独匹配项,而是匹配整个"drama")(\w+a):捕获组,\w+匹配任意字母/数字/下划线,a锁定结尾的小写a,整个捕获组用来提取目标单词$1r:替换时引用捕获到的单词,再追加字母r,实现"drama"→"dramar"的效果
- 版本兼容提示:如果你的项目用的是Java 11以下版本,我可以给你补充基于
BufferedReader/BufferedWriter的实现代码。 - 大小写适配:如果需要匹配以大写A结尾的单词,只需要把正则表达式改成
"(?i)\\b(\\w+a)\\b",(?i)标志会开启忽略大小写模式。
内容的提问来源于stack exchange,提问作者Rjaa Ahmed
相关产品推荐
相关产品推荐

