⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 producerule.java

📁 基于Web的动物识别专家系统(Java实现)
💻 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 + -