如何在循环中使用String方法

时间:2014-02-04 23:09:28

标签: java while-loop java-io

我正在尝试在循环中使用String方法,所以我可以读取文件的一部分代码是这个

   package AnimeAid;

import java.io.*;
import java.nio.charset.Charset;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;

public class ReadFile {


    public void getFileInformation() throws IOException {   

        try{
        String file;
        file = "tra.srt";
        Charset charset = Charset.defaultCharset();
        Path path = Paths.get(file);
        BufferedReader reader = Files.newBufferedReader(path, charset);
        System.out.printf("Lines from %s:%n",file);
        String line;
        int num = 5;
        while((line = reader.readLine()) != null && line.indexOf(':') != -1){
            System.out.println(line.substring(0, 10));


        }
        }catch(FileNotFoundException ex){
        System.err.println(ex);
        }
    }
}

现在它没有给我任何错误信息,但它没有给出正确答案,我需要使用return而不是system.out.print

       Lines from tra.srt:
BUILD SUCCESSFUL (total time: 0 seconds)

文件的外观如何

 1
00:00:01,600 --> 00:00:04,080
<b>Mr Magnussen, please state your
full name for the record.</b>

2
00:00:04,080 --> 00:00:07,040
Charles Augustus Magnussen.

输出最多是来自每一行的时间00:00:01,600,他通过查找每个:符号来了解他的知识

1 个答案:

答案 0 :(得分:2)

line.indexOf(':')

返回一个整数。这意味着您拥有while (boolean && int),这在Java世界中毫无意义。你应该比较indexOf方法的结果,以便得到一个布尔值。

例如:

while((line = reader.readLine()) != null && line.indexOf(':') != -1)