无法修改扫描仪的输出

时间:2015-12-27 18:09:53

标签: java eclipse io java.util.scanner

从扫描仪输出获取可读输出时出现问题。尝试没有IO,并在控制台输出也是不可读的。有代码:

import java.util.*;
import java.io.*;
import java.lang.String;

class dane {

    public static void main(String[] args) throws IOException {
        Scanner s = null;
        Set<String> dane = new TreeSet<String>();

        try {
            s = new Scanner(new BufferedReader(new FileReader("dane.txt")));
            while (s.hasNext()) {
                String Ala1 = s.next().split(" ").toString();
                dane.add(Ala1);
                System.out.println(dane);
            }
        } finally {
            if (s != null) {
                s.close();
            }
        }
    }
}

TreeSet的输出是:

[[Ljava.lang.String;@14eac69, 
[Ljava.lang.String;@1909752, 
[Ljava.lang.String;@1f96302]

我尝试添加.toString()方法,但它没有帮助。 我的txt文件非常简单,只包含三个单词,然后我想将其拆分为字母并按字母顺序打印出来。但是有了这样的输出,我无法继续。

2 个答案:

答案 0 :(得分:3)

Split方法返回元素数组,因此您需要选择要放入Set的数组的第一个元素

String Ala1 = s.next();

答案 1 :(得分:0)

您的代码应如下所示:

public static void main(String[] args) throws IOException {
    Scanner s = null;
    Set<String> dane = new TreeSet<String>();

    try {
        s = new Scanner(new BufferedReader(new FileReader("dane.txt")));
        while (s.hasNext()) {
            String Ala1 = s.next().split(" ")[0];
            dane.add(Ala1);
            System.out.println(Ala1);
        }
    } finally {
        if (s != null) {
            s.close();
        }
    }
}

您在循环中打印了集而不是字符串。 .toString()是多余的。