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

📄 forsearch.java

📁 使用面向对象方法完成“快速拼写检查程序”的分析、设计和实现过程。快速拼写检查程序基本要求说明如下: 1.进行拼写检查的文件以文本文件形式存储于外存上;2.只检查文件中英文单词的拼写错误;3.单词是
💻 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 + -