📄 producerule.java
字号:
/**
* @author
*
*/
import java.util.*;
import java.io.*;
import java.util.regex.*;
//该类实现了从Rule.txt文件中读取规则
public class ProduceRule {
private ArrayList<String> resultList;
private ArrayList<ArrayList> conditList;
private List<ArrayList> sumList;
Scanner s;
public ProduceRule() {
resultList = new ArrayList<String>(); //该列表用于放置规则的结论部分
conditList = new ArrayList<ArrayList>(); //该列表用于放置规则的条件部分
sumList = new ArrayList<ArrayList>(); //该列表用来放置resultList和conditList
}
//通过Scanner类实现了读取特定格式的文件
public List readFile() {
String partExp = "\\s*AND\\s*";
Pattern partPat = Pattern.compile(partExp, Pattern.MULTILINE);
parseLine("该动物有毛发", partPat);
resultList.add("该动物是哺乳动物");
parseLine("该动物有奶", partPat);
resultList.add("该动物是哺乳动物");
parseLine("该动物有羽毛", partPat);
resultList.add("该动物是鸟");
parseLine("该动物会飞 AND 会下蛋", partPat);
resultList.add("该动物是鸟");
parseLine("该动物会吃肉", partPat);
resultList.add("该动物是食肉动物");
parseLine("该动物有犬齿 AND 有爪 AND 眼盯前方", partPat);
resultList.add("该动物是食肉动物");
parseLine("该动物是哺乳动物 AND 有蹄", partPat);
resultList.add("该动物是有蹄类动物");
parseLine("该动物是哺乳动物 AND 是嚼反刍动物", partPat);
resultList.add("该动物是有蹄类动物");
parseLine("该动物是哺乳动物 AND 该动物是食肉动物 AND 是黄褐色 AND身上有暗斑点", partPat);
resultList.add("该动物是金钱豹");
parseLine("该动物是哺乳动物 AND 该动物是食肉动物 AND 是黄褐色 AND身上有黑色条纹", partPat);
resultList.add("该动物是虎");
parseLine("该动物是有蹄类动物 AND 有长脖子 AND 有长腿 AND 身上有暗斑点", partPat);
resultList.add("该动物是长颈鹿");
parseLine("该动物是有蹄类动物 AND 身上有黑色条纹", partPat);
resultList.add("该动物是斑马");
parseLine("该动物是鸟 AND 有长脖子 AND 有长腿 AND 不会飞 AND 有黑白二色", partPat);
resultList.add("该动物是鸵鸟");
parseLine("该动物是鸟 AND 会游泳 AND 不会飞 AND 有黑白二色", partPat);
resultList.add("该动物是企鹅");
parseLine("该动物是鸟 AND 善飞", partPat);
resultList.add("该动物是信天翁");
sumList.add(conditList);
sumList.add(resultList);
return sumList;
}
private void parseLine(String str, Pattern pat) {
Scanner scanner = new Scanner(str).useDelimiter(pat);
ArrayList<String> cells = new ArrayList<String>();
while (scanner.hasNext()) {
cells.add(scanner.next());
}
conditList.add(cells);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -