有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

JAVAutil。扫描仪如何使用分隔符隔离单词(Java)

我正在编写一个程序,扫描文本文件,然后将每个单词写入Hashmap

Scanner类有一个default分隔符空格。但我最终把我的单词用标点符号存储起来。我希望扫描器能够识别句点、COMA和其他类型的常用标点符号作为停止标记的标志。以下是我的尝试:

    Scanner line_scanner = new Scanner(line).useDelimiter("[.,:;()?!\" \t]+~\\s");

扫描器基本上忽略了所有空格,即使表达式中有'\\s'。对不起,我几乎不懂正则表达式


共 (2) 个答案

  1. # 1 楼答案

    您可能不选择unicode字母:

    useDelimiter("[^\\p{L}\\p{M}]+");
    

    ([^…]不是,大写字母p表示Unicode类别,L表示字母,M表示变音组合符号(重音)

  2. # 2 楼答案

     Scanner line_scanner = new Scanner(line).useDelimiter("[.,:;()?!\"\\s]+");