Java 使用扫描器的解析器不适用于#&引用;签名

Java 使用扫描器的解析器不适用于#&引用;签名,java,parsing,Java,Parsing,我正在尝试按如下方式解析输入文件: #*Nonmonotonic logic - context-dependent reasoning. #@Victor W. Marek,Miroslaw Truszczynski #t1993 #cArtificial Intelligence #index3003478 #%3005567 #%3005568 #%3005569 #!abstracst #*Wissensrepräsentation und Inferenz - eine grundl

我正在尝试按如下方式解析输入文件:

#*Nonmonotonic logic - context-dependent reasoning.
#@Victor W. Marek,Miroslaw Truszczynski
#t1993
#cArtificial Intelligence
#index3003478
#%3005567
#%3005568
#%3005569
#!abstracst

#*Wissensrepräsentation und Inferenz - eine grundlegende Einführung.
#@Wolfgang Bibel,Steffen Hölldobler,Torsten Schaub
#t1993
#cArtificial Intelligence
#index3005557
#%3005567
#!abstracts2
Title: Nonmonotonic logic - context-dependent reasoning.
Author: Victor W. Marek,Miroslaw Truszczynski
Year: 1993
Domain: Artificial Intelligence
Index: 3003478
Citation: 3005567
Citation: 3005568
Citation: 3005569
Abstract: Abstract

Title: Wissensrepräsentation und Inferenz - eine grundlegende Einführung.
Author: Wolfgang Bibel,Steffen Hölldobler,Torsten Schaub
Year: 1993
Domain: Artificial Intelligence
Index: 3005557
Citation: 3005567
Abstract: Abstract2
Title:*
Author:Nonmonotonic logic - context-dependent reasoning.
Title:@
Author:Victor W. Marek,Miroslaw Truszczynski
Title:t
Author:1993
Title:c
Author:Artificial Intelligence
Title:i
Author:ndex3003478
Title:%
Author: 
Title:!
Title: 
Author: 
Title:*
Author:Wissensrepr?sentation und Inferenz - eine grundlegende Einf?hrung.
Title:@
Author:Wolfgang Bibel,Steffen H?lldobler,Torsten Schaub
Title:t
Author:1993
Title:c
Author:Artificial Intelligence
Title:i
Author:ndex3005557
Title:i
Author:ndex3005557
Title:%
Author: 
Title:!
Title: 
Author: 
Done.
import java.sql.*;
import java.util.Scanner;
import java.io.*;
import java.nio.charset.Charset;
import java.nio.charset.StandardCharsets;
import java.nio.file.Path;
import java.nio.file.Paths;

public class Citation{

    public static void main (String[] args) throws SQLException,
    ClassNotFoundException, IOException{

        Citation parser = new Citation("D:/test.txt");
        parser.processLineByLine();
        log("Done.");

    }

     public Citation(String aFileName){
         fFilePath = Paths.get(aFileName);
     }

     public final void processLineByLine() throws IOException {
         try (Scanner scanner =  new Scanner(fFilePath, ENCODING.name())){
              while (scanner.hasNextLine()){
                  processLine(scanner.nextLine());
              }      
            }
     }

     protected void processLine(String aLine){


                Scanner scanner = new Scanner(aLine);
                scanner.useDelimiter("\n");

                while(scanner.hasNext()){

                //   Scanner scanner = new Scanner(aLine);
                     scanner.useDelimiter("#*");
                     if(scanner.hasNext()){
                         String title = scanner.next();
                         System.out.println("Title:" + title);

                     }

                //   Scanner scanner3 = new Scanner(aLine);
                     scanner.useDelimiter("#@");
                     if(scanner.hasNext()){
                         String author = scanner.next();
                //       System.out.println(author);
                     }

                //   Scanner scanner4 = new Scanner(aLine);
                     scanner.useDelimiter("#t");
                     if(scanner.hasNext()){
                         String year = scanner.next();
                //       System.out.println(year);
                     }
                //   Scanner scanner5 = new Scanner(aLine);
                     scanner.useDelimiter("#c");
                     if(scanner.hasNext()){
                         String domain = scanner.next();
                    //   System.out.println(domain);

                     }
                //   Scanner scanner6 = new Scanner(aLine);
                     scanner.useDelimiter("#index");
                     if(scanner.hasNext()){
                         String index = scanner.next();
                        // System.out.println(index);
                     }               
                //   Scanner scanner7 = new Scanner(aLine);
                     scanner.useDelimiter("#%");
                     if(scanner.hasNext()){
                         String cite = scanner.next();
                    //   System.out.println(cite);

                     }
                //   Scanner scanner8 = new Scanner(aLine);
                     scanner.useDelimiter("#!");
                     if(scanner.hasNext()){
                         String abstracts = scanner.next();
                        // System.out.println(abstracts);

                     }



                }





          }

          // PRIVATE 
          private final Path fFilePath;
          private final static Charset ENCODING = StandardCharsets.UTF_8;  

          private static void log(Object aObject){
            System.out.println(String.valueOf(aObject));
          }


        } 
Title:Nonmonotonic logic - context-dependent reasoning.
Title:#@Victor W. Marek,Miroslaw Truszczynski
Title:#t1993
Title:#cArtificial Intelligence
Title:#index3003478
Title:#% 
Title:#!
Title:  
Title:Wissensrepr?sentation und Inferenz - eine grundlegende Einf?hrung.
Title:#@Wolfgang Bibel,Steffen H?lldobler,Torsten Schaub
Title:#t1993
Title:#cArtificial Intelligence
Title:#index3005557
Title:#index3005557
Title:#% 
Title:#!
Title:  
我正在为这个文件创建解析器,并正在寻找如下输出:

#*Nonmonotonic logic - context-dependent reasoning.
#@Victor W. Marek,Miroslaw Truszczynski
#t1993
#cArtificial Intelligence
#index3003478
#%3005567
#%3005568
#%3005569
#!abstracst

#*Wissensrepräsentation und Inferenz - eine grundlegende Einführung.
#@Wolfgang Bibel,Steffen Hölldobler,Torsten Schaub
#t1993
#cArtificial Intelligence
#index3005557
#%3005567
#!abstracts2
Title: Nonmonotonic logic - context-dependent reasoning.
Author: Victor W. Marek,Miroslaw Truszczynski
Year: 1993
Domain: Artificial Intelligence
Index: 3003478
Citation: 3005567
Citation: 3005568
Citation: 3005569
Abstract: Abstract

Title: Wissensrepräsentation und Inferenz - eine grundlegende Einführung.
Author: Wolfgang Bibel,Steffen Hölldobler,Torsten Schaub
Year: 1993
Domain: Artificial Intelligence
Index: 3005557
Citation: 3005567
Abstract: Abstract2
Title:*
Author:Nonmonotonic logic - context-dependent reasoning.
Title:@
Author:Victor W. Marek,Miroslaw Truszczynski
Title:t
Author:1993
Title:c
Author:Artificial Intelligence
Title:i
Author:ndex3003478
Title:%
Author: 
Title:!
Title: 
Author: 
Title:*
Author:Wissensrepr?sentation und Inferenz - eine grundlegende Einf?hrung.
Title:@
Author:Wolfgang Bibel,Steffen H?lldobler,Torsten Schaub
Title:t
Author:1993
Title:c
Author:Artificial Intelligence
Title:i
Author:ndex3005557
Title:i
Author:ndex3005557
Title:%
Author: 
Title:!
Title: 
Author: 
Done.
import java.sql.*;
import java.util.Scanner;
import java.io.*;
import java.nio.charset.Charset;
import java.nio.charset.StandardCharsets;
import java.nio.file.Path;
import java.nio.file.Paths;

public class Citation{

    public static void main (String[] args) throws SQLException,
    ClassNotFoundException, IOException{

        Citation parser = new Citation("D:/test.txt");
        parser.processLineByLine();
        log("Done.");

    }

     public Citation(String aFileName){
         fFilePath = Paths.get(aFileName);
     }

     public final void processLineByLine() throws IOException {
         try (Scanner scanner =  new Scanner(fFilePath, ENCODING.name())){
              while (scanner.hasNextLine()){
                  processLine(scanner.nextLine());
              }      
            }
     }

     protected void processLine(String aLine){


                Scanner scanner = new Scanner(aLine);
                scanner.useDelimiter("\n");

                while(scanner.hasNext()){

                //   Scanner scanner = new Scanner(aLine);
                     scanner.useDelimiter("#*");
                     if(scanner.hasNext()){
                         String title = scanner.next();
                         System.out.println("Title:" + title);

                     }

                //   Scanner scanner3 = new Scanner(aLine);
                     scanner.useDelimiter("#@");
                     if(scanner.hasNext()){
                         String author = scanner.next();
                //       System.out.println(author);
                     }

                //   Scanner scanner4 = new Scanner(aLine);
                     scanner.useDelimiter("#t");
                     if(scanner.hasNext()){
                         String year = scanner.next();
                //       System.out.println(year);
                     }
                //   Scanner scanner5 = new Scanner(aLine);
                     scanner.useDelimiter("#c");
                     if(scanner.hasNext()){
                         String domain = scanner.next();
                    //   System.out.println(domain);

                     }
                //   Scanner scanner6 = new Scanner(aLine);
                     scanner.useDelimiter("#index");
                     if(scanner.hasNext()){
                         String index = scanner.next();
                        // System.out.println(index);
                     }               
                //   Scanner scanner7 = new Scanner(aLine);
                     scanner.useDelimiter("#%");
                     if(scanner.hasNext()){
                         String cite = scanner.next();
                    //   System.out.println(cite);

                     }
                //   Scanner scanner8 = new Scanner(aLine);
                     scanner.useDelimiter("#!");
                     if(scanner.hasNext()){
                         String abstracts = scanner.next();
                        // System.out.println(abstracts);

                     }



                }





          }

          // PRIVATE 
          private final Path fFilePath;
          private final static Charset ENCODING = StandardCharsets.UTF_8;  

          private static void log(Object aObject){
            System.out.println(String.valueOf(aObject));
          }


        } 
Title:Nonmonotonic logic - context-dependent reasoning.
Title:#@Victor W. Marek,Miroslaw Truszczynski
Title:#t1993
Title:#cArtificial Intelligence
Title:#index3003478
Title:#% 
Title:#!
Title:  
Title:Wissensrepr?sentation und Inferenz - eine grundlegende Einf?hrung.
Title:#@Wolfgang Bibel,Steffen H?lldobler,Torsten Schaub
Title:#t1993
Title:#cArtificial Intelligence
Title:#index3005557
Title:#index3005557
Title:#% 
Title:#!
Title:  
到目前为止,我创建的代码如下所示,但它产生的输出与我预期的完全不同,我无法理解为什么扫描仪以错误的方式读取它。它似乎只把每行的第一个字符读作标题,而不是每个部分的第一行。 我在想也许扫描器读不到“#”符号,但我想我也可能错了。举例来说,为了弄清楚哪里不对,如果我只想打印标题,我得到的输出是

Title:*
Title:@
Title:t
Title:c
Title:i
Title:%
Title:!
Title: 
Title:*
Title:@
Title:t
Title:c
Title:i
Title:i
Title:%
Title:!
Title:
Done.
如果我试着打印标题和作者,我得到的结果如下:

#*Nonmonotonic logic - context-dependent reasoning.
#@Victor W. Marek,Miroslaw Truszczynski
#t1993
#cArtificial Intelligence
#index3003478
#%3005567
#%3005568
#%3005569
#!abstracst

#*Wissensrepräsentation und Inferenz - eine grundlegende Einführung.
#@Wolfgang Bibel,Steffen Hölldobler,Torsten Schaub
#t1993
#cArtificial Intelligence
#index3005557
#%3005567
#!abstracts2
Title: Nonmonotonic logic - context-dependent reasoning.
Author: Victor W. Marek,Miroslaw Truszczynski
Year: 1993
Domain: Artificial Intelligence
Index: 3003478
Citation: 3005567
Citation: 3005568
Citation: 3005569
Abstract: Abstract

Title: Wissensrepräsentation und Inferenz - eine grundlegende Einführung.
Author: Wolfgang Bibel,Steffen Hölldobler,Torsten Schaub
Year: 1993
Domain: Artificial Intelligence
Index: 3005557
Citation: 3005567
Abstract: Abstract2
Title:*
Author:Nonmonotonic logic - context-dependent reasoning.
Title:@
Author:Victor W. Marek,Miroslaw Truszczynski
Title:t
Author:1993
Title:c
Author:Artificial Intelligence
Title:i
Author:ndex3003478
Title:%
Author: 
Title:!
Title: 
Author: 
Title:*
Author:Wissensrepr?sentation und Inferenz - eine grundlegende Einf?hrung.
Title:@
Author:Wolfgang Bibel,Steffen H?lldobler,Torsten Schaub
Title:t
Author:1993
Title:c
Author:Artificial Intelligence
Title:i
Author:ndex3005557
Title:i
Author:ndex3005557
Title:%
Author: 
Title:!
Title: 
Author: 
Done.
import java.sql.*;
import java.util.Scanner;
import java.io.*;
import java.nio.charset.Charset;
import java.nio.charset.StandardCharsets;
import java.nio.file.Path;
import java.nio.file.Paths;

public class Citation{

    public static void main (String[] args) throws SQLException,
    ClassNotFoundException, IOException{

        Citation parser = new Citation("D:/test.txt");
        parser.processLineByLine();
        log("Done.");

    }

     public Citation(String aFileName){
         fFilePath = Paths.get(aFileName);
     }

     public final void processLineByLine() throws IOException {
         try (Scanner scanner =  new Scanner(fFilePath, ENCODING.name())){
              while (scanner.hasNextLine()){
                  processLine(scanner.nextLine());
              }      
            }
     }

     protected void processLine(String aLine){


                Scanner scanner = new Scanner(aLine);
                scanner.useDelimiter("\n");

                while(scanner.hasNext()){

                //   Scanner scanner = new Scanner(aLine);
                     scanner.useDelimiter("#*");
                     if(scanner.hasNext()){
                         String title = scanner.next();
                         System.out.println("Title:" + title);

                     }

                //   Scanner scanner3 = new Scanner(aLine);
                     scanner.useDelimiter("#@");
                     if(scanner.hasNext()){
                         String author = scanner.next();
                //       System.out.println(author);
                     }

                //   Scanner scanner4 = new Scanner(aLine);
                     scanner.useDelimiter("#t");
                     if(scanner.hasNext()){
                         String year = scanner.next();
                //       System.out.println(year);
                     }
                //   Scanner scanner5 = new Scanner(aLine);
                     scanner.useDelimiter("#c");
                     if(scanner.hasNext()){
                         String domain = scanner.next();
                    //   System.out.println(domain);

                     }
                //   Scanner scanner6 = new Scanner(aLine);
                     scanner.useDelimiter("#index");
                     if(scanner.hasNext()){
                         String index = scanner.next();
                        // System.out.println(index);
                     }               
                //   Scanner scanner7 = new Scanner(aLine);
                     scanner.useDelimiter("#%");
                     if(scanner.hasNext()){
                         String cite = scanner.next();
                    //   System.out.println(cite);

                     }
                //   Scanner scanner8 = new Scanner(aLine);
                     scanner.useDelimiter("#!");
                     if(scanner.hasNext()){
                         String abstracts = scanner.next();
                        // System.out.println(abstracts);

                     }



                }





          }

          // PRIVATE 
          private final Path fFilePath;
          private final static Charset ENCODING = StandardCharsets.UTF_8;  

          private static void log(Object aObject){
            System.out.println(String.valueOf(aObject));
          }


        } 
Title:Nonmonotonic logic - context-dependent reasoning.
Title:#@Victor W. Marek,Miroslaw Truszczynski
Title:#t1993
Title:#cArtificial Intelligence
Title:#index3003478
Title:#% 
Title:#!
Title:  
Title:Wissensrepr?sentation und Inferenz - eine grundlegende Einf?hrung.
Title:#@Wolfgang Bibel,Steffen H?lldobler,Torsten Schaub
Title:#t1993
Title:#cArtificial Intelligence
Title:#index3005557
Title:#index3005557
Title:#% 
Title:#!
Title:  
代码如下:

#*Nonmonotonic logic - context-dependent reasoning.
#@Victor W. Marek,Miroslaw Truszczynski
#t1993
#cArtificial Intelligence
#index3003478
#%3005567
#%3005568
#%3005569
#!abstracst

#*Wissensrepräsentation und Inferenz - eine grundlegende Einführung.
#@Wolfgang Bibel,Steffen Hölldobler,Torsten Schaub
#t1993
#cArtificial Intelligence
#index3005557
#%3005567
#!abstracts2
Title: Nonmonotonic logic - context-dependent reasoning.
Author: Victor W. Marek,Miroslaw Truszczynski
Year: 1993
Domain: Artificial Intelligence
Index: 3003478
Citation: 3005567
Citation: 3005568
Citation: 3005569
Abstract: Abstract

Title: Wissensrepräsentation und Inferenz - eine grundlegende Einführung.
Author: Wolfgang Bibel,Steffen Hölldobler,Torsten Schaub
Year: 1993
Domain: Artificial Intelligence
Index: 3005557
Citation: 3005567
Abstract: Abstract2
Title:*
Author:Nonmonotonic logic - context-dependent reasoning.
Title:@
Author:Victor W. Marek,Miroslaw Truszczynski
Title:t
Author:1993
Title:c
Author:Artificial Intelligence
Title:i
Author:ndex3003478
Title:%
Author: 
Title:!
Title: 
Author: 
Title:*
Author:Wissensrepr?sentation und Inferenz - eine grundlegende Einf?hrung.
Title:@
Author:Wolfgang Bibel,Steffen H?lldobler,Torsten Schaub
Title:t
Author:1993
Title:c
Author:Artificial Intelligence
Title:i
Author:ndex3005557
Title:i
Author:ndex3005557
Title:%
Author: 
Title:!
Title: 
Author: 
Done.
import java.sql.*;
import java.util.Scanner;
import java.io.*;
import java.nio.charset.Charset;
import java.nio.charset.StandardCharsets;
import java.nio.file.Path;
import java.nio.file.Paths;

public class Citation{

    public static void main (String[] args) throws SQLException,
    ClassNotFoundException, IOException{

        Citation parser = new Citation("D:/test.txt");
        parser.processLineByLine();
        log("Done.");

    }

     public Citation(String aFileName){
         fFilePath = Paths.get(aFileName);
     }

     public final void processLineByLine() throws IOException {
         try (Scanner scanner =  new Scanner(fFilePath, ENCODING.name())){
              while (scanner.hasNextLine()){
                  processLine(scanner.nextLine());
              }      
            }
     }

     protected void processLine(String aLine){


                Scanner scanner = new Scanner(aLine);
                scanner.useDelimiter("\n");

                while(scanner.hasNext()){

                //   Scanner scanner = new Scanner(aLine);
                     scanner.useDelimiter("#*");
                     if(scanner.hasNext()){
                         String title = scanner.next();
                         System.out.println("Title:" + title);

                     }

                //   Scanner scanner3 = new Scanner(aLine);
                     scanner.useDelimiter("#@");
                     if(scanner.hasNext()){
                         String author = scanner.next();
                //       System.out.println(author);
                     }

                //   Scanner scanner4 = new Scanner(aLine);
                     scanner.useDelimiter("#t");
                     if(scanner.hasNext()){
                         String year = scanner.next();
                //       System.out.println(year);
                     }
                //   Scanner scanner5 = new Scanner(aLine);
                     scanner.useDelimiter("#c");
                     if(scanner.hasNext()){
                         String domain = scanner.next();
                    //   System.out.println(domain);

                     }
                //   Scanner scanner6 = new Scanner(aLine);
                     scanner.useDelimiter("#index");
                     if(scanner.hasNext()){
                         String index = scanner.next();
                        // System.out.println(index);
                     }               
                //   Scanner scanner7 = new Scanner(aLine);
                     scanner.useDelimiter("#%");
                     if(scanner.hasNext()){
                         String cite = scanner.next();
                    //   System.out.println(cite);

                     }
                //   Scanner scanner8 = new Scanner(aLine);
                     scanner.useDelimiter("#!");
                     if(scanner.hasNext()){
                         String abstracts = scanner.next();
                        // System.out.println(abstracts);

                     }



                }





          }

          // PRIVATE 
          private final Path fFilePath;
          private final static Charset ENCODING = StandardCharsets.UTF_8;  

          private static void log(Object aObject){
            System.out.println(String.valueOf(aObject));
          }


        } 
Title:Nonmonotonic logic - context-dependent reasoning.
Title:#@Victor W. Marek,Miroslaw Truszczynski
Title:#t1993
Title:#cArtificial Intelligence
Title:#index3003478
Title:#% 
Title:#!
Title:  
Title:Wissensrepr?sentation und Inferenz - eine grundlegende Einf?hrung.
Title:#@Wolfgang Bibel,Steffen H?lldobler,Torsten Schaub
Title:#t1993
Title:#cArtificial Intelligence
Title:#index3005557
Title:#index3005557
Title:#% 
Title:#!
Title:  
当我将
“#*”
分隔符更改为
“#/*”
分隔符时,标题被读取,但随后每一行也被读取为标题。它没有检测到我的其他分隔符。我得到的结果如下:

#*Nonmonotonic logic - context-dependent reasoning.
#@Victor W. Marek,Miroslaw Truszczynski
#t1993
#cArtificial Intelligence
#index3003478
#%3005567
#%3005568
#%3005569
#!abstracst

#*Wissensrepräsentation und Inferenz - eine grundlegende Einführung.
#@Wolfgang Bibel,Steffen Hölldobler,Torsten Schaub
#t1993
#cArtificial Intelligence
#index3005557
#%3005567
#!abstracts2
Title: Nonmonotonic logic - context-dependent reasoning.
Author: Victor W. Marek,Miroslaw Truszczynski
Year: 1993
Domain: Artificial Intelligence
Index: 3003478
Citation: 3005567
Citation: 3005568
Citation: 3005569
Abstract: Abstract

Title: Wissensrepräsentation und Inferenz - eine grundlegende Einführung.
Author: Wolfgang Bibel,Steffen Hölldobler,Torsten Schaub
Year: 1993
Domain: Artificial Intelligence
Index: 3005557
Citation: 3005567
Abstract: Abstract2
Title:*
Author:Nonmonotonic logic - context-dependent reasoning.
Title:@
Author:Victor W. Marek,Miroslaw Truszczynski
Title:t
Author:1993
Title:c
Author:Artificial Intelligence
Title:i
Author:ndex3003478
Title:%
Author: 
Title:!
Title: 
Author: 
Title:*
Author:Wissensrepr?sentation und Inferenz - eine grundlegende Einf?hrung.
Title:@
Author:Wolfgang Bibel,Steffen H?lldobler,Torsten Schaub
Title:t
Author:1993
Title:c
Author:Artificial Intelligence
Title:i
Author:ndex3005557
Title:i
Author:ndex3005557
Title:%
Author: 
Title:!
Title: 
Author: 
Done.
import java.sql.*;
import java.util.Scanner;
import java.io.*;
import java.nio.charset.Charset;
import java.nio.charset.StandardCharsets;
import java.nio.file.Path;
import java.nio.file.Paths;

public class Citation{

    public static void main (String[] args) throws SQLException,
    ClassNotFoundException, IOException{

        Citation parser = new Citation("D:/test.txt");
        parser.processLineByLine();
        log("Done.");

    }

     public Citation(String aFileName){
         fFilePath = Paths.get(aFileName);
     }

     public final void processLineByLine() throws IOException {
         try (Scanner scanner =  new Scanner(fFilePath, ENCODING.name())){
              while (scanner.hasNextLine()){
                  processLine(scanner.nextLine());
              }      
            }
     }

     protected void processLine(String aLine){


                Scanner scanner = new Scanner(aLine);
                scanner.useDelimiter("\n");

                while(scanner.hasNext()){

                //   Scanner scanner = new Scanner(aLine);
                     scanner.useDelimiter("#*");
                     if(scanner.hasNext()){
                         String title = scanner.next();
                         System.out.println("Title:" + title);

                     }

                //   Scanner scanner3 = new Scanner(aLine);
                     scanner.useDelimiter("#@");
                     if(scanner.hasNext()){
                         String author = scanner.next();
                //       System.out.println(author);
                     }

                //   Scanner scanner4 = new Scanner(aLine);
                     scanner.useDelimiter("#t");
                     if(scanner.hasNext()){
                         String year = scanner.next();
                //       System.out.println(year);
                     }
                //   Scanner scanner5 = new Scanner(aLine);
                     scanner.useDelimiter("#c");
                     if(scanner.hasNext()){
                         String domain = scanner.next();
                    //   System.out.println(domain);

                     }
                //   Scanner scanner6 = new Scanner(aLine);
                     scanner.useDelimiter("#index");
                     if(scanner.hasNext()){
                         String index = scanner.next();
                        // System.out.println(index);
                     }               
                //   Scanner scanner7 = new Scanner(aLine);
                     scanner.useDelimiter("#%");
                     if(scanner.hasNext()){
                         String cite = scanner.next();
                    //   System.out.println(cite);

                     }
                //   Scanner scanner8 = new Scanner(aLine);
                     scanner.useDelimiter("#!");
                     if(scanner.hasNext()){
                         String abstracts = scanner.next();
                        // System.out.println(abstracts);

                     }



                }





          }

          // PRIVATE 
          private final Path fFilePath;
          private final static Charset ENCODING = StandardCharsets.UTF_8;  

          private static void log(Object aObject){
            System.out.println(String.valueOf(aObject));
          }


        } 
Title:Nonmonotonic logic - context-dependent reasoning.
Title:#@Victor W. Marek,Miroslaw Truszczynski
Title:#t1993
Title:#cArtificial Intelligence
Title:#index3003478
Title:#% 
Title:#!
Title:  
Title:Wissensrepr?sentation und Inferenz - eine grundlegende Einf?hrung.
Title:#@Wolfgang Bibel,Steffen H?lldobler,Torsten Schaub
Title:#t1993
Title:#cArtificial Intelligence
Title:#index3005557
Title:#index3005557
Title:#% 
Title:#!
Title:  

假设文件格式不会很快更改,请按如下所示进行修改

protected void processLine(String aLine) {
   if (aLine.trim().equals("")) {
       System.out.println();//executed when an empty line is read
   }
   else if (aLine.startsWith("#*")) {
      System.out.println("Title:" + aLine.substring(2)); //or, you can also do
      //System.out.println("Title:" + aLine.substring("#*".length()));
   } else if (aLine.startsWith("otherCases") {
      //proceed for other cases in similar fashion.
   }
   .
   .
   .
}

假设文件格式不会很快更改,请按如下所示进行修改

protected void processLine(String aLine) {
   if (aLine.trim().equals("")) {
       System.out.println();//executed when an empty line is read
   }
   else if (aLine.startsWith("#*")) {
      System.out.println("Title:" + aLine.substring(2)); //or, you can also do
      //System.out.println("Title:" + aLine.substring("#*".length()));
   } else if (aLine.startsWith("otherCases") {
      //proceed for other cases in similar fashion.
   }
   .
   .
   .
}

问题是您使用的是
scanner.useDelimiter(“#*”)。此方法需要一个正则表达式,其中*symbol表示零次或多次出现symbol(在您的例子中为#)。所以,使用
scanner.useDelimiter(“\\\*”)在您的情况下。

问题在于您使用的是
扫描仪。使用分隔符(“#*”)。此方法需要一个正则表达式,其中*symbol表示零次或多次出现symbol(在您的例子中为#)。所以,使用
scanner.useDelimiter(“\\\*”)在您的情况下。

当我更改分隔符时,它适用于标题行,但也适用于读取为标题的每一行。它不读取我的其他分隔符。我将更新上面的输出。当我更改分隔符时,它适用于标题行,但也适用于读取为标题的每一行。它不读取我的其他分隔符。我将更新上面的输出。它显示行
System.out.println(“Title:”+Title.substring(2))在线程“main”java.lang.NullPointerException中有一个
异常
,与我在上面发布的代码相同,当时我将
“\\*”
部分更改为
“\\\*”
,它成功地读取了标题行。但现在每一行都被解读为标题。我也试着加上另一个分隔符,但它没有读出来。我试着把if也放在if里面,但它也没有读出来。你知道问题是什么吗?我已经更新了我的问题。它对我有用。看,我已经编辑了答案<代码>标题
未定义。所以NPE。将其更改为
aLine
。它显示行
System.out.println(“Title:+Title.substring(2))在线程“main”java.lang.NullPointerException中有一个
异常
,与我在上面发布的代码相同,当时我将
“\\*”
部分更改为
“\\\*”
,它成功地读取了标题行。但现在每一行都被解读为标题。我也试着加上另一个分隔符,但它没有读出来。我试着把if也放在if里面,但它也没有读出来。你知道问题是什么吗?我已经更新了我的问题。它对我有用。看,我已经编辑了答案<代码>标题
未定义。所以NPE。将其更改为
aLine