我正在尝试在循环中使用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
,他通过查找每个:
符号来了解他的知识
答案 0 :(得分:2)
line.indexOf(':')
返回一个整数。这意味着您拥有while (boolean && int)
,这在Java世界中毫无意义。你应该比较indexOf
方法的结果,以便得到一个布尔值。
例如:
while((line = reader.readLine()) != null && line.indexOf(':') != -1)