java - 使用扫描器返回字符串

标签 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");
        }
    }
}

我希望我解释得足够好,任何建议都希望能有所帮助

最佳答案

您的分割不正确。

.split("//|");

正斜杠不是转义符。您需要反斜杠

.split("\\|");

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

关于java - 使用扫描器返回字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20811399/

相关文章:

java - 在 java 中使用 mockito 记录器

java - 在 Java 中自动将自签名证书合并到我的信任库中的好策略是什么?

java - 在 Spring @Bean 方法中返回接口(interface)的限制

java - 如何将从数据库中检索到的字符串值与程序中定义的字符串值进行比较

c# - StringBuilder 真的比连接一打字符串慢吗?

java - java web 服务的数据文件的放置

java - 作为 root 的 Spring 资源文件

java - 将自定义组件添加到 NetBeans GUI 构建器! (世界风)

java - Shell 脚本输出位于不同的目录中

java - Java中字符串数组的自定义解析