【问题标题】:can't modify output from scanner unreadable无法修改扫描仪的输出不可读
【发布时间】:2015-12-27 18:09:52
【问题描述】:

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

【问题讨论】:

  • 我已经格式化了你的问题,但以后请你自己做。任何 IDE 都有此功能。
  • next() 已经使用 ` ` 作为分隔符,所以 String Ala1 = s.next().split(" ").toString(); 调用 split()toString() 是多余的

标签: java eclipse io java.util.scanner


【解决方案1】:

Split方法返回元素数组,所以你需要选择数组的第一个元素放入Set

String Ala1 = s.next();

【讨论】:

  • 我明白了你的想法,谢谢!我通过以下方式修改了我的代码,添加了 3 个不同的字符串
  • split(" ")[0] after next() 如果我们使用 Scanner 并且我们不更改其分隔符,则没有任何意义,因为默认情况下 Scanner 使用任何空格作为分隔符,这意味着 next()只能返回分隔符(单词)之间的单个标记。所以split(" ") 将简单地将这个词包装在数组中,[0] 将从该数组中返回相同的元素。
【解决方案2】:

您的代码应如下所示:

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() 是多余的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-02
    • 1970-01-01
    • 1970-01-01
    • 2022-01-07
    相关资源
    最近更新 更多