llhash.java

来自「CMM编译器词法分析及语法分析代码」· Java 代码 · 共 60 行

JAVA
60
字号
package try_sw;import java.util.*;import java.util.regex.*;public class LLhash {	/**	 * @param args	 */	private Hashtable<String,String> llhash= new Hashtable<String,String>();	//内部的哈西表		public void put(String nt,String t,String[] reg ){//其值t需要解析		String input =nt+"@"+t;		String input2="";		for(String tmp : reg)input2+= (tmp+"@");		input2=input2.substring(0,input2.length()-1);//去掉尾巴上的@				llhash.put(input, input2);		//nt non-terminal t-terminal reg-算式			}		public boolean containsKey(String nt,String t){				String search=nt+"@"+t;		return llhash.containsKey(search);					}		public String[] get(String nt,String t){		String input = nt+"@"+t;		if(llhash.containsKey(input))		{String output=llhash.get(input);				return output.split("@");		}		else return null;			}		public void clear(){				llhash.clear();	}			public static void main(String[] args) {		// TODO Auto-generated method stub		String [] st = {""};		LLhash ll= new LLhash();		ll.put("a", "b",st );		String[] al=(String[])ll.get("a","b");	for(String c:al)		System.out.println(al.length);	}}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?