Java 在没有标点符号的文件中读取

Java 在没有标点符号的文件中读取,java,string,io,Java,String,Io,我一行一行地读文件,然后分析每个单词。然后我使用PrintWriter将单词打印到一个新文件中。如果单词有标点符号,我需要在没有标点符号的情况下读入单词,因为我将标点符号直接写入输出文件。如果字符在单词的中间,我需要把它分成两个单词。 示例: 让我们应该是两个词,“让”和“s” 你的,应该只是“你的” 除了检查每种标点符号的word.contains()并将其拆分外,我想不出其他方法。有什么建议吗?您可以使用,这是中的一个!“#$%&'()*+,-./:?@[\]^ `{124;},以及作为

我一行一行地读文件,然后分析每个单词。然后我使用PrintWriter将单词打印到一个新文件中。如果单词有标点符号,我需要在没有标点符号的情况下读入单词,因为我将标点符号直接写入输出文件。如果字符在单词的中间,我需要把它分成两个单词。

示例:

  • 让我们应该是两个词,“让”和“s”

  • 你的,应该只是“你的”

除了检查每种标点符号的word.contains()并将其拆分外,我想不出其他方法。有什么建议吗?

您可以使用,这是
中的一个!“#$%&'()*+,-./:?@[\]^ `{124;}
,以及作为空白的
[\t\n\x0B\f\r]

line.split("[\\s\\p{Punct}]+");
例如:

"let's. your!".split("[\\s\\p{Punct}]+");
> ["let", "s", "your"] 

@Aaron Hiller如果您不知道,split()是java.lang.string上的一个方法;您可以在从文件中读取的行上使用此答案中的逻辑,它会生成一个由建议拆分的参数所表示的字符分隔的子字符串数组。