繁体   English   中英

如何在文本文件中搜索以a结尾的单词,然后将r附加到这些单词? (Java)

[英]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并保留第一个捕获组,即空白。

我们可以将此问题分为三个主要阶段:

  1. 从文件读取
  2. 修改以'a'结尾的单词
  3. 写回文件

我们可以使用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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM