[英]How to search a text file for words ending with a and then append r to these words? (Java)
我有一个包含电影脚本的文件,并且我试图将'r'附加到所有以'a'结尾的单词。 任何帮助将不胜感激!
这可以使用String.replaceAll方法完成,如下所示:
String script = "a cuba is a bla bla country";
System.out.println(script.replaceAll("a(\\s+)", "ar$1"));
// this gives the result of "ar cubar is ar blar blar country"
replaceAll
的第一个参数是一个正则表达式,表示任何以a
和一个或多个空格结尾的内容。 第二个参数是替换,它将r
附加在a
之后a
并保留第一个捕获组,即空白。
我们可以将此问题分为三个主要阶段:
我们可以使用FileReader访问文件,然后使用Scanner读取每个单词。 Oracle Basic IO教程中提供了有关如何执行此操作的示例 。
要检查每个单词是否以“ a”结尾,我们可以将最终字符与“ a”进行比较。 如果是这种情况,我们可以使用Java的字符串连接将'r'附加到此:
if(word.charAt(word.length()-1) == 'a'){
word = word + 'r';
}
最后,我们可以使用Java的BufferedWriter将所有这些写回到文件中。
尝试这个
System.out.println(script.replaceAll("\\b.*?a\\b", "$0r"));
\\b.*?a\\b
将匹配以a
结尾的边界词。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.