Java - 扫描仪分隔符 - '悬空元字符'+'附近索引0'

时间:2015-11-30 21:10:24

标签: java file java.util.scanner

我正在尝试读出一个文件。

此文件具有特定对象的多个属性,这些属性现在不相关。

但这些属性用“+”符号分隔。

现在,当我尝试将它们读出并使用分隔符作为+时,我收到错误:Dangling meta character '+' near index 0

注意:文件以'1'(数据库中对象的id)开头而不是'+'

这是我一直在使用的代码:

public void doImport() throws FileNotFoundException, IOException{

    file = new File(document);
    Scanner fileIn = new Scanner(file);

    while(fileIn.hasNextLine()){

        //reading a single line of the file
        String line = fileIn.nextLine();
        Scanner scan = new Scanner(line);

        //setting the delimiter
        scan.useDelimiter("+");

        while(scan.hasNext()){
            //printing contents, split by a +
            System.out.println(scan.next());
        }

        String string = fileIn.nextLine();
        System.out.println(string);
    }
    fileIn.close();
}

文件内容:fileContent

1 个答案:

答案 0 :(得分:2)

Delimiter期望一个正则表达式模式,所以在这种情况下你应该使用: scan.useDelimiter("\\+");

正则表达式中的+号表示您需要1个或更多匹配,例如[a-z]+表示从a到z的一个或多个字母。