从扫描仪输出获取可读输出时出现问题。尝试没有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文件非常简单,只包含三个单词,然后我想将其拆分为字母并按字母顺序打印出来。但是有了这样的输出,我无法继续。
答案 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()是多余的。