所以,这个网站是全新的,但看起来很有前途..
无论如何,对于业务来说,我正在处理这段代码,并且我正在尝试使用扫描仪返回一个字符串。我也尝试过使用 BufferedReader,但它仍然返回 null。
public String scanFile(String lineStarter) throws IOException {
Scanner sc = new Scanner(file);
while (sc.hasNextLine()) {
String[] lineInfo = sc.nextLine().toString().split("//|");
if(lineStarter.equalsIgnoreCase(lineInfo[0])){
return sc.toString();
}
}
//this is what keeps on returning
return null;
}
文本文件的格式如下:
starwars|cool|Actor|general|google|low
starw|cool|Actor|general|google|low
hark|dude|this|I|don't|know
所以,它不断返回我不想返回的最后一行...
我想,如果你真的想要它,我想我会在打开一个新文件时调用该方法
private void doubleClicked(java.awt.event.MouseEvent evt) {
if(evt.getClickCount()==2){
try {
String s = (String) jList1.getSelectedValue();
System.out.println(s);
new DisplayMovie(scanFile(s)).setVisible(true);
} catch (IOException ex) {
System.out.println("An Error has occured");
}
}
}
我希望我解释得足够好,任何建议都希望能有所帮助
最佳答案
您的分割不正确。
.split("//|");
正斜杠不是转义符。您需要反斜杠
.split("\\|");
使用第一个代码,它将无法正确分割,因此您将得不到匹配项,并且您的方法将始终返回 null,除非您将整行作为字符串传递给方法
关于java - 使用扫描器返回字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20811399/