當前位置:菜譜大全網 - 菜譜 - Java解析復雜文本

Java解析復雜文本

導入Java . io . *;

導入Java . util . *;

公共類FileManager {

公共列表& lt菜肴& gt解析文件(文件文件){

String str = null

列表& lt菜肴& gtlist = new ArrayList & lt菜肴& gt();

嘗試{

buffered reader br = new buffered reader(new file reader(file));

while((str = br.readLine())!=null) {

if(str.startsWith("Name:")) {

int index = str . index of(":");

string dish name = str . substring(index+1,str . length());

str = br . readline();

index = str . index of(":");

string categories string = str . substring(index+1,str . length());

string[]cateArr = categories string . split(",");

設置& lt字符串& gtcategories = new HashSet<。字符串& gt();

for(int j = 0;j & ltcate arr . length;j++) {

categories . add(cateArr[j]);

}

設置& lt字符串& gt配料=新哈希集& lt字符串& gt();

string ss = br . readline();

while((str = br.readLine())!= null & amp& amp!(str.length() == 0)) {

string[]strArr = str . split(" ");

for(int I = 0;我& ltstrArr.lengthi++) {

ingredients . add(strArr[I]);

}

}

菜d =新菜();

d . set name(dish name);

d.setCategories(類別);

d.setIngredients(配料);

list . add(d);

}

}

} catch (IOException e) {

// TODO自動生成的catch塊

e . printstacktrace();

}

退貨單;

}

公共靜態void main(String[] args) {

// TODO自動生成的方法存根

file manager FM = new file manager();

列表& lt菜肴& gtlist = new ArrayList & lt菜肴& gt();

File File = new File(" D:/disks . txt ");

list = fm.parseFile(文件);

for(int I = 0;我& ltlist . size();i++) {

System.out.println(list.get(i))。getName());

System.out.println(list.get(i))。get categories());

System.out.println(list.get(i))。geting redients());

}

}

}

//菜系,壹種菜系對應壹個菜系的例子。

類別菜肴{

私有字符串名稱;

私有設置& lt字符串& gt類別;//美食類別

私有設置& lt字符串& gt配料;//菜肴配料

公共字符串getName() {

返回名稱;

}

public void setName(字符串名){

this.name = name

}

公共設置& lt字符串& gtgetCategories() {

退貨類別;

}

公共void Set categories(Set & lt;字符串& gt類別){

類別=類別;

}

公共設置& lt字符串& gtgetIngredients() {

返回配料;

}

public void Set ingredients(Set & lt;字符串& gt配料){

this.ingredients =配料;

}

}