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
。