【问题标题】:Issue with using a delimiter on a multiple line text file在多行文本文件上使用分隔符的问题
【发布时间】:2013-02-20 05:36:37
【问题描述】:

假设我们有一个包含动物及其颜色的文本文件:

dog=brown
cat=yellow
bird=red

我需要得到动物的颜色,所以我写了这个方法。我用参数中我想要颜色的动物调用该方法。

public String getAnimal(String animal) throws IOException{
        Scanner sc = new Scanner(TEXT_FILE).useDelimiter("=");
        for (int i = 0; i < 3; i++){
            if(sc.nextLine().startsWith(animal)){
                sc.next();
                return sc.next();
            }
            sc.nextLine();
        }
         return null;
    }

它只是半有效的。例如调用System.out.println(getAnimal("cat"));,打印:

yellow
cat

这就像扫描仪忽略了有任何行并在分隔符之间打印任何内容的事实。

【问题讨论】:

标签: java java.util.scanner delimiter


【解决方案1】:

如果这是您期望的输入格式,请使用 Properties 类 (docs.oracle.com/javase/6/docs/api/java/util/Properties.html)

您可以使用Apache FileUtils.readLines 读取所有行。然后使用String.split= 字符拆分字符串以分隔键值对。

【讨论】:

  • 我只想获取特定行的内容。有没有办法在不使用任何外部 API 的情况下做到这一点?
  • 您可以参考stackoverflow.com/a/4716623/960778逐行读取文本文件,然后为每一行查找输入键(狗/猫/鸟)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-12-07
  • 2017-03-25
  • 2013-12-11
  • 2019-07-14
  • 1970-01-01
  • 2010-09-15
  • 1970-01-01
相关资源
最近更新 更多