【问题标题】:Reading a line from a text file Java从文本文件 Java 中读取一行
【发布时间】:2013-12-24 09:51:20
【问题描述】:

我正在尝试使用 BufferedReader 和 Scanner 从文件中读取一行。我可以创建这两个没问题。我要做的是阅读一行,计算该行中逗号的数量,然后返回并获取每个单独的项目。所以如果文件看起来像这样:

item1,item2,item3,etc.

item4,item5,item6,etc.

程序将返回有四个逗号,然后返回一次获取一个项目。它将在下一行重复。返回逗号的数量对我的程序至关重要,否则,我将只使用 Scanner.useDelimiter() 方法。我也不知道怎么回到行首去抓取每一项。

【问题讨论】:

  • 下面的几个答案给出了str.length 逗号的数量。从技术上讲,逗号的实际数量是str.length-1,因为有str.length 项目(每个项目之间有逗号)。只是想确保提到这一点。
  • @thesquaregroot 好点,我忘了他计算的是逗号而不是标记。
  • 虽然再次阅读您的问题,您说您的示例中有 4 个逗号,但实际上只有 3 个(有 4 个项目)。因此,如果您确实想要项目数量,也许str.length 是对的。
  • @thesquaregroot 很重要。从技术上讲,我询问了逗号的数量,但实际长度可以满足我的目的。不过眼光不错。

标签: java java.util.scanner bufferedreader


【解决方案1】:

为什么不直接拆分Stringsplit 方法接受分隔符(正则表达式)作为参数,并将String 分解为String[]。这将消除return to the beginning 的需要。

String value = "item1,item2,item3";
String[] tokens = value.split(",");

要获取逗号的数量,只需使用tokens.length - 1

String.split() Documentation

【讨论】:

  • 太棒了 :) 不知道字符串的那个方法!
  • @thesquaregroot 是的,我只是在测试我的代码时注意到了这一点。谢谢!
  • 被选中,因为所有答案都相似,他是第一个。他还添加了文档。
【解决方案2】:

Split() 可以用来实现这一点 例如:

String Line = "item1,item2,item3"
String[] words =Line.split(",");

【讨论】:

    【解决方案3】:

    如果您绝对必须知道逗号的数量,那么已经回答了类似的问题:

    Java: How do I count the number of occurrences of a char in a String?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-06-21
      • 1970-01-01
      • 2016-07-14
      • 2010-10-07
      • 2011-01-09
      相关资源
      最近更新 更多