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

📄 compare.java

📁 可根据字典文件快速进行单词校对
💻 JAVA
字号:
package yy;
import java.io.*;
import java.util.*;
//-----------------------------------------------比较查找类
public class Compare{
	public String str1;//------------------------放输入文件
	public String str2;//------------------------放出错单词
	private String str3;//-----------------------放字典
	private String str4;//-----------------------放输入文件的文件名
	private Hashtable counts=new Hashtable();//--用哈希表来放字典
	public String[] string=new String[5000];//---放出错单词
//-----------------------------------------------构造方法
	public void Compare(String filename,String wordbook)throws IOException{
		str4=filename;
		str3=wordbook;
		this.Check();//---------------------------把字典放进哈希表
	}
//-------------------------------------------------读入文件并分析
	public void Readin()throws IOException{
		int i,j=0;
        char[] c=new char[10000];//----------------存放读入文件
        InputStream fi=null;
		FileReader fe=null;
		fi=new FileInputStream(str4);
		fe=new FileReader(str4);
	    str1="";
			try{j=fe.read(c);
			}catch(IOException e){;}	
        for(i=0;i<j;i++)
		   str1=str1+c[i];//-----------------------将文件保存
		StreamTokenizer tok1=new StreamTokenizer(fi);
		int wrong=0;
		str2="";
		tok1.resetSyntax();//----------------------重新构造分析表
		tok1.wordChars(0,255);//-------------------单词为全部字符
		tok1.ordinaryChar('0');//------------------排除特殊字符
		tok1.ordinaryChar('1');
		tok1.ordinaryChar('2');
		tok1.ordinaryChar('3');
		tok1.ordinaryChar('4');
		tok1.ordinaryChar('5');
		tok1.ordinaryChar('6');
		tok1.ordinaryChar('7');
		tok1.ordinaryChar('8');
		tok1.ordinaryChar('9');
		tok1.ordinaryChar(';');
		tok1.ordinaryChar('"');
		tok1.ordinaryChar(':');
		tok1.ordinaryChar('(');
		tok1.ordinaryChar(')');
		tok1.ordinaryChar(' ');
		tok1.ordinaryChar(',');
		tok1.ordinaryChar('.');
		tok1.ordinaryChar('*');
		tok1.ordinaryChar('!');
		tok1.ordinaryChar('@');
		tok1.ordinaryChar('#');
		tok1.ordinaryChar('$');
		tok1.ordinaryChar('%');
		tok1.ordinaryChar('^');
		tok1.ordinaryChar('&');
		tok1.ordinaryChar('|');
		tok1.ordinaryChar('{');
		tok1.ordinaryChar('}');
		tok1.ordinaryChar('[');
		tok1.ordinaryChar(']');
		tok1.ordinaryChar('/');
		tok1.ordinaryChar('?');
		tok1.ordinaryChar('<');
		tok1.ordinaryChar('>');
		tok1.ordinaryChar(10);
		tok1.ordinaryChar(13);
		try{int line=1;
			while(tok1.nextToken()!=StreamTokenizer.TT_EOF){
				switch(tok1.ttype)
				  {case StreamTokenizer.TT_EOL:line++;//---读到换行加一
				                               break;
				   case StreamTokenizer.TT_WORD:
                        if(!counts.contains(tok1.sval.toLowerCase()))//-----查字典无此单词
					   {
					    str2=str2+"第"+Integer.toString(line)+"行---"+tok1.sval+"\n"+"\r";
					    string[wrong]="第"+Integer.toString(line)+"行---"+tok1.sval;
					    wrong++;
					   } break;
				  }	      
			}
			string[wrong]="共"+Integer.toString(wrong)+"个错误";
			str2=str2+"共"+Integer.toString(wrong)+"个错误";
		}catch(IOException em){;}
	}
//-----------------------------------------------查字典	
	private void Check()throws IOException{
		
		FileInputStream fe=null;
		fe=new FileInputStream(str3);
		StreamTokenizer tok2=new StreamTokenizer(fe);
		tok2.wordChars(0,255);
		tok2.ordinaryChar('(');
		tok2.ordinaryChar(')');
		tok2.ordinaryChar(':');
		tok2.ordinaryChar(' ');
		tok2.ordinaryChar(',');
		tok2.ordinaryChar('.');
		tok2.ordinaryChar(10);
		tok2.ordinaryChar(13);
		try{
			while(tok2.nextToken()!=StreamTokenizer.TT_EOF)
			     {if(tok2.ttype==StreamTokenizer.TT_WORD)
			        counts.put(tok2.sval.toLowerCase(),tok2.sval.toLowerCase());//---把单词放进哈希表
			     }
		}catch(IOException e){;}
	}	
}

⌨️ 快捷键说明

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