使用java.util.scanner读取和解析文件
我有一个文本文件,我想用java.util.Scanner读取并解析内容 文件如下所示:使用java.util.scanner读取和解析文件,java,java.util.scanner,Java,Java.util.scanner,我有一个文本文件,我想用java.util.Scanner读取并解析内容 文件如下所示: 对象数:5个 说明0一些说明 :说明1一些说明 :对象1的更多描述 :对象1的更多描述 :对象1的更多描述 描述2对象2的一些描述 :对象2的更多描述 描述3对象3的一些描述 :对象3的更多描述 描述4对象4的一些描述 :对象4的更多描述 到目前为止,我已经做到了这一点 String pattern = "description"; String pattern2 = ":"; int rom
对象数:5个
说明0一些说明
:说明1一些说明
:对象1的更多描述
:对象1的更多描述
:对象1的更多描述
描述2对象2的一些描述
:对象2的更多描述
描述3对象3的一些描述
:对象3的更多描述
描述4对象4的一些描述
:对象4的更多描述
到目前为止,我已经做到了这一点
String pattern = "description";
String pattern2 = ":";
int romNummer = 0;
fil = new Scanner(new File(filnavn));
do{
String input;
input = fil.next();
romNummer = fil.nextInt();
String description = fil.nextLine();
if(fil.hasNext(":")){
input = fil.next();
String description2 = fil.nextLine();
description += description2;
}
if(fil.hasNext(":")){
input = fil.next();
String description2 = fil.nextLine();
description2 += description2;
}
if(fil.hasNext(":")){
input = fil.next();
String description2 = fil.nextLine();
description += description2;
}
}while (fil.hasNext(pattern)||fil.hasNext(pattern2));
我希望一个对象的所有描述都作为一个字符串。在scanner类中有没有更优雅的方法来实现这一点 为什么不读每一行,然后决定它是否是一个新的描述,或者第一个字符是否是“:”,它将被附加到当前描述中?为什么不读每一行,然后决定它是否是一个新的描述,或者第一个字符是否是“:”,它将被附加到当前描述中?伪代码
fil = new Scanner(new File(filnavn));
String line = "",result="";
int number=0;
number = Integer.parseInt(fil.nextLine().split(":").[1].trim());
while(fil.hasNext())
{
line = fil.nextLine();
Check if line starts with "Description"
{
Print content
remove "Description [number]" from line
content += line;
}
Check if line starts with ":"
{
remove ":"
content += line;
}
}
伪码
fil = new Scanner(new File(filnavn));
String line = "",result="";
int number=0;
number = Integer.parseInt(fil.nextLine().split(":").[1].trim());
while(fil.hasNext())
{
line = fil.nextLine();
Check if line starts with "Description"
{
Print content
remove "Description [number]" from line
content += line;
}
Check if line starts with ":"
{
remove ":"
content += line;
}
}
带:的行表示它附加到当前描述中。我试图逐行阅读并确定它是否是新的描述,但无法使其正常工作。lines with:表示它已附加到当前描述中。我试着逐行阅读,判断这是否是一个新的描述,但无法使它起作用。