我有一个文本文件,我想将每个单词读成ArrayList<Dictionary>
但我必须留下逗号,破折号,点等。这是迄今为止为此目的的代码:
Scanner sc2 = null;
while (sc2.hasNextLine()) {
Scanner s2 = new Scanner(sc2.nextLine());
while (s2.hasNext()) {
String s = s2.next();
String[] tokens = s.split("\\W+");
s = tokens.toString();
Dictionary.add(s);
}
}
问题是当我执行打印代码时:
for (int i = 0; i < Dictionary.size();i++) {
System.out.println(Dictionary.get(i));
}
我得到以下内容:
[Ljava.lang.String;@ea2f77
[Ljava.lang.String;@ea6137
[Ljava.lang.String;@ea639
等。对于每一个字。我相信问题是s = tokens.toString();
,但我不知道如何解决它。
谢谢!
答案 0 :(得分:3)
tokens
是Strings
的数组,因此其toString()
方法会返回您在输出中看到的内容。您需要迭代String
中的每个tokens
,然后将它们分别添加到Dictionary
,例如
for (int i = 0; i < tokens.length; i++) {
Dictionary.add(tokens[i]);
}
答案 1 :(得分:1)
如果你想避免循环;然后使用java.util.Arrays
-
s = Arrays.toString(s.split("\\W+"));
答案 2 :(得分:0)
这是一个已被问过的问题,但答案是:
String punctutations = ".,:;";//add all the ones you want.
if(punctutations.contains(letter[a])) //If the character at letter[a] contains a punctuation mark