0

我的文本文件:

3.456  5.234 Saturday 4.15am
2.341  6.4556 Saturday 6.08am

在第一行,我只想阅读 3.456 和 5.234。在第二行,我只想阅读 2.341 和 6.4556。如果有的话,同样适用于下一行。

到目前为止,这是我的代码:

InputStream instream = openFileInput("myfilename.txt");


                if (instream != null) {             


              InputStreamReader inputreader = new InputStreamReader(instream);
              BufferedReader buffreader = new BufferedReader(inputreader);

                      String line=null;


                while (( line = buffreader.readLine()) != null) {



        }

                                       }
4

2 回答 2

0

感谢您表现出一些努力。试试这个

while (( line = buffreader.readLine()) != null) {
    String[] parts = line.split(" ");
    double x = Double.parseDouble(parts[0]);
    double y = Double.parseDouble(parts[1]);
}

我是从内存中输入的,因此可能存在语法错误。

于 2013-07-08T22:50:36.917 回答
0
int linenumber = 1;    
while((line = buffreader.readLine()) != null){
   String [] parts = line.split(Pattern.quote(" "));
   System.out.println("Line "+linenumber+"-> First Double: "+parts[0]+" Second Double:"
+parts[1]);
linenumber++;
}

Bilbert 的代码几乎是正确的。您应该使用 Pattern 并调用 quote() 进行拆分。这会从数组中删除所有空格。您的问题是,如果您在没有模式的情况下进行数组拆分,那么您在每次拆分后都会有一个空格。我还在我的输出中添加了一个 Linenumber,所以你可以看到哪一行包含什么。它应该可以正常工作

于 2014-04-04T12:23:27.353 回答