📄 compare.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 + -