📄 forsearch.java
字号:
import java.io.*;
class ForSearch
{ public int row=0,len1=0,len2=0,flag=0,i; //定义行数、存入的字符串个数、标志位、循环变量
public String[] word=new String[1000000]; //定义字符串数组
public String[] WordList=new String[1000000]; //定义字符串数组
public File f1,f2,f3;//定义文件类对象
public ForSearch(String str1,String str2)throws IOException
{
word[len1]="待检查文件:"+str1;
len1++;
word[len1]=" 词典:WordList_6\n";
len1++;
f1 = new File(str1); //创建文件对象f1
FileInputStream is1 = new FileInputStream(f1); //创建文件输入流对象is1
StreamTokenizer parser1 = new StreamTokenizer(new InputStreamReader(is1)); //令牌化输入流is1
f2 = new File("wordlist_6.txt");//创建文件对象f2,目的是每个单词检查完以后,都重新回到词典的第一行
FileInputStream is2 = new FileInputStream(f2);//创建文件输入流对象is2
StreamTokenizer parser2 = new StreamTokenizer(new InputStreamReader(is2));//令牌化输入流is2
parser1.ordinaryChar(46); //识别令牌化输入流is1的句号
parser1.ordinaryChar(34);
while(parser2.ttype!=-1)
{
parser2.nextToken(); //读入下一个字符流
String y = parser2.sval; // 把词典当前单词传入y
WordList[len2]=y; //存入数组
len2++;
}
while (parser1.ttype!= -1) // 令牌流没有结束,继续循环
{
flag=0;
parser1.nextToken(); //读入下一个字符流
row=parser1.lineno(); //记录其行数
if(parser1.ttype == -3) //若是单词,则查询词典
{
String x = parser1.sval; //把当前单词传入x
for(i=0;i<len2;i++)
{
if(x.equalsIgnoreCase(WordList[i])) //当前单词与词典的每一个单词比较,若相等,标志flag置1,跳出循环
{
flag=1;
break;
}
}
if(flag==0) //若不相等,即搜索不到,将此单词及其行号传入字符串数组
{
word[len1]=x;
word[len1]=word[len1]+" ";
len1++;
word[len1]="第"+Integer.toString(row)+"行";
word[len1]=word[len1]+"\n";
len1++;
}
}
}
f3=new File(str2); //把结果传入自定义文件
FileWriter to=new FileWriter(f3); //以文件创建字符流对象
i=0;
while(i<len1)
{
to.write(word[i]);//字符串写入流
i++;
}
to.close(); //关闭流
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -