如何使用分隔符来隔离单词(Java)

时间:2011-11-14 09:36:54

标签: java java.util.scanner delimiter

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

Scanner类具有defualt空格分隔符。但是我最终把我的文字存放在附加标点符号上。我希望扫描仪将周期,昏迷和其他类型的常见标点识别为停止令牌的标志。这是我的尝试:

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

扫描仪基本上忽略了所有空格,即使我有'\\ s'作为表达式的一部分。对不起,但我对正则表达式几乎一无所知。

2 个答案:

答案 0 :(得分:4)

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

答案 1 :(得分:0)

您可能不会使用unicode字母:

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

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