【问题标题】:Trouble reading from file in java (difficult format)从 java 中读取文件时遇到问题(格式困难)
【发布时间】:2014-10-01 09:14:29
【问题描述】:

我正在尝试从文件中读取,并将值存储在变量中。问题是文件中的每一行都是整数和字符串的混合,它们之间的空格/制表符的数量是奇数。我知道该行中的前 4 个元素是什么,但随后有一个长度不同的数字序列(但这些数字以 0 结尾)。我尝试了一些不同的方法,但我似乎无法做到正确。首先,我尝试逐行读取,当它看到空格时将其拆分,然后将不包含空格的值存储到新数组中。这不起作用,因为它没有“足够好”地分裂。数组中的一个索引可以由一个字符串、许多空格和一个 int 组成。我已经尝试了其他一些变体,但我似乎想不出一个好方法。有没有人可以给我一些关于如何阅读这种文件的指示?

这是文件中的一行示例: 7 地毯 8 4 5 9 1 2 0

例如。分裂:

while (in.hasNextLine()) {
   line = in.nextLine();
   String[] splitLine = line.split(" ");
}

我也尝试过使用 split("\t")

【问题讨论】:

  • 你能贴出你用来分割它的代码吗?
  • 无代码无应答!!!
  • 我已经编辑并添加了我使用的拆分。我已经尝试了很多东西,以至于发布代码有点困难。至少这是我的主要尝试,但是当我打印它时,拆分无法正常工作,因为我在代码中编写了

标签: java file io


【解决方案1】:

尝试替换

line = line.split(" ");

line.split("\\s+");

这将根据空格而不是单个空格来分割行。这意味着它将占用多个空格、制表符等。

【讨论】:

    【解决方案2】:

    要在到达必须使用的空间时正确拆分

    line = line.split("\\s+");
    

    这是因为 " " 在 Java 中被认为是一个特殊字符。
    line = line.split("\\s"); 如果是单个空格,则会使用它,但如果要使用多个空格,则使用第一个。

    【讨论】:

      猜你喜欢
      • 2021-04-09
      • 2020-07-27
      • 1970-01-01
      • 2015-02-19
      • 1970-01-01
      • 2013-07-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多