使用扫描仪返回字符串

时间:2013-12-28 05:35:10

标签: java string netbeans split java.util.scanner

所以,这个网站是全新的,但看起来很有希望..

无论如何,对于商业,我正在研究这段代码,我正在尝试使用扫描仪返回一个字符串。我也尝试过使用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");
        }
    }
}

我希望我能很好地解释它,任何建议都有希望帮助

1 个答案:

答案 0 :(得分:1)

您的拆分不正确。

.split("//|");

正斜杠不是逃避。你需要反斜杠

.split("\\|");

使用第一个代码,它将无法正确分割,因此您将不会获得匹配,并且除非将整行作为字符串传递给方法,否则您的方法将始终返回null