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

📄 classidentity.java

📁 实现算法与界面设计的完全分离。很好的封装自己的词法分析程序
💻 JAVA
字号:


import java.util.*;
import java.io.*;
public class ClassIdentity {
 private Hashtable ClassHash;
 private File ClassFile;
 private FileReader classFileReader; //读文件对象
 private int TMP_BUFFER_SIZE = 30;

 public ClassIdentity(java.io.File ClassFile) {
 System.out.println("类型种别码表已创建!");
 this.ClassFile = ClassFile;
 }

 //查找类型种别码
 public int findKey(String classWord) {
 int KEY;
 for (Enumeration e = this.ClassHash.keys(); e.hasMoreElements(); ) {
 KEY = Integer.parseInt( (String) e.nextElement());
 if ( ( (String)this.ClassHash.get(Integer.toString(KEY))).
 equalsIgnoreCase(classWord)) {
 return KEY;
 }
 }
 return -1;
 }

 public void initClassIdentityTable() {
 ClassHash = new Hashtable(); //创建hash表
 //int intLength;
// char[] chrBuffer = new char[TMP_BUFFER_SIZE];
 String classWord;
 int classCounter = 0;
 try {
 if (ClassFile.exists()) { //文件存在
 //创建读文件对象
 classFileReader = new java.io.FileReader(ClassFile);
 //3月10日修改
 BufferedReader br=new java.io.BufferedReader(classFileReader);
 //读文件内容到hash表
 //while ( (intLength = classFileReader.read(chrBuffer)) != -1) {
 while((classWord=br.readLine())!=null){
 classCounter++;
 //填写hash表
 //classWord = String.valueOf(chrBuffer).trim();
 classWord=classWord.trim();
 System.out.println("读取类型种别码: [KEY: " + classCounter +
 "][VALUE: " + classWord + "]");
 this.ClassHash.put(Integer.toString(classCounter), classWord);
 }
 //关闭读文件对象
 classFileReader.close();
 }
 else { //文件不存在
 System.err.println("[ERRO]类型种别码文件不存在!");
 }
 }
 catch (Exception e) {
 e.printStackTrace(System.err);
 }
 }
}

⌨️ 快捷键说明

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