我试图返回该方法的值,但循环抛出错误,因为返回必须位于方法主体中而不是循环中。我正在使用 system.out.println 并且它可以工作,但我想使用 return 代替。
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;
while((line = reader.readLine()) != null) {
if (line.indexOf(':') != -1 && line.indexOf(',') != -1 && line.indexOf('0') != -1) {
System.out.println(line.substring(0, 12));
}
}
}catch(FileNotFoundException ex){
System.err.println(ex);
}
}
}
最佳答案
显然你可以从 for 循环中返回。
public String 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;
while((line = reader.readLine()) != null) {
if (line.indexOf(':') != -1 && line.indexOf(',') != -1 && line.indexOf('0') != -1) {
return line.substring(0, 12);
}
}
}catch(FileNotFoundException ex){
System.err.println(ex);
}
return "";
}
关于java - 在循环和方法内使用 return,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21643618/