String []到String

时间:2016-03-26 19:56:27

标签: java string split

我有一个文本文件,我想将每个单词读成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();,但我不知道如何解决它。 谢谢!

3 个答案:

答案 0 :(得分:3)

tokensStrings的数组,因此其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