【发布时间】:2012-12-25 20:16:17
【问题描述】:
我正在读取一个 txt 文件,其中包含一个段落,我正在解析单词并将它们插入到一个列表中;但是,我也在插入空格。不知何故,我的正则表达式似乎每次遇到逗号或点时都不起作用,因为它添加了一个空格......如果有人可以建议一个可以解决这个问题的正则表达式?谢谢
public class Exercise225 {
public static void main(String... args) throws FileNotFoundException {
String file = "words.txt";
Scanner inFile = new Scanner(new File(file));
String[] words = null;
String line = "";
List list = new ArrayList();
while (inFile.hasNextLine()) {
line = inFile.nextLine();
words = line.split("[\n|\r|\t| |,|.|)|(|-|\"|!]");
for (int i = 0; i < words.length; i++) {
list.add(words[i].toLowerCase());
}
}
Collections.sort(list);
System.out.println(list.size());
Iterator listItr = list.iterator();
while (listItr.hasNext()) {
System.out.println(listItr.next());
}
inFile.close();
}
}
【问题讨论】:
-
我认为你必须逃避“。”在你的正则表达式中?
-
我认为你应该从转义 '.' 开始。和 '-' -- 这些是正则表达式中的特殊字符。
-
点不需要转义。它在字符类中并不特殊。