【问题标题】:read specific line from txt file java从 txt 文件 java 中读取特定行
【发布时间】:2014-06-03 23:59:36
【问题描述】:

我有一个问题!我有一个 txt 文件(在不移动的特定路径中),其中包含一个内容可变的字符串。我必须使用这个字符串来输入我的算法。 txt文件的解决方案示例是

50 [40,-13,-6,-7,-4] [28,-40,45,-29,37] [-43,19,-24,-9,-45] [26,-41,-28,-16,44]

4 [-3,-1,2] [-2,-4,1] [-3,2,1] [-2,3,-4] [4,2,1] [4,-1,2] [3,-4,1] [-3,-2,-4] 

我必须使用数字 50 或 4 或括号外的其他数字作为 int。但是必须将所有其余内容提取到特定字符串中,然后将其传递给方法。 有人有解决方案吗? 重要提示:文件的内容是可变的

【问题讨论】:

  • 问题到底是什么?
  • 如果可能的话,一种可以获取结果的方法的实现以及关于如何转换的一些事情。
  • 了解Scanner
  • 您已经告诉我们一些可能的解决方案 - 这些解决方案的输入是什么?
  • 谢谢你,但是关于字符串的开始和结束(即变量),我该如何定义呢?

标签: java string inputstream outputstream


【解决方案1】:

如果/Application/testdata/ntd.txt 是您的 txt 文件的路径,那么下面的代码将起作用(我猜是您的要求)。

public static void main(String[] args) throws IOException 
    {

        String content=null;
        File folder = new File("/Application/testdata/ntd.txt");

              content = FileUtils.readFileToString(folder)+"\n";
              System.out.println(content);


        int outside=Integer.parseInt(content.substring(0, content.indexOf("[")).trim());
        System.out.println("int val: "outside);
        String remainingString=content.substring(content.indexOf("["), content.lastIndexOf("]")+1);
        System.out.println("String value: "remainingString);
    }

输出:

  50 [40,-13,-6,-7,-4] [28,-40,45,-29,37] [-43,19,-24,-9,-45] [26,-41,-28,-16,44]
  int val: 50
  String value: [40,-13,-6,-7,-4] [28,-40,45,-29,37] [-43,19,-24,-9,-45] [26,-41,-28,-16,44]

我使用 apache commons 进行文件读取。如果您想进一步打破remainingString,则根据空格字符将其拆分。

【讨论】:

  • 感谢您的帮助,您的解决方案可以解决我的问题,但是例如如果我想将 String remainingString 作为字符串数组,我应该怎么做?
猜你喜欢
  • 2011-05-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-10-30
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多