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

📄 spellchecker.java

📁 用java 编写的快速编写程序
💻 JAVA
字号:
/*
 * Checker.java
 *
 * Created on 2004年12月15日, 下午9:31
 */

package spellchecker;

import java.util.regex.*;
import java.io.*;

/**
 * 
 * @author infant
 */
public class SpellChecker
{

    private int count = 0, line = 1, amount = 0;

    private String[] check;

    /** Creates a new instance of Checker */
    public SpellChecker()
    {
    }

    public SpellChecker(String dicPath, String Stext) throws IOException
    {
        BufferedReader br = new BufferedReader(new FileReader(dicPath));
        BufferedWriter bw = new BufferedWriter(new FileWriter("Error.txt"));
        String dictionary;
        Pattern p = Pattern.compile(" ");
        String word = "", other = "";
        int index = 0;
        char[] ch = Stext.toCharArray();
        check = new String[ch.length];
        if (br.ready()) //Jmp the first line
        {
            bw.write(br.readLine());
            bw.newLine();
        }
        boolean frag = false, dicfrag = false;

        for (int i = 0, n = ch.length; i < n; i++)
        {
            if (ch[i] >= 'a' && ch[i] <= 'z' || ch[i] >= 'A' && ch[i] <= 'Z'
                            || ch[i] == '-')
            {
                if (other != "")
                {
                    check[index] = other;
                    index++;
                    other = "";
                }
                word += ch[i];
            } else
            {
                if (ch[i] == '\n')
                    line++;
                if (word != "")
                {
                    amount++;
                    br = new BufferedReader(new FileReader(dicPath));
                    if (br.ready())
                        br.readLine();
                    check[index] = word;
                    String lowC = word.toLowerCase();
                    index++;
                    word = "";
                    while (br.ready())
                    {
                        dictionary = br.readLine();
                        dictionary = dictionary.toLowerCase();
                        if (dictionary.indexOf(' ') != -1)
                        {
                            String dic[] = p.split(dictionary);
                            for (int j = 0; j < dic.length; j++)
                            {
                                if (lowC.equals(dic[j]))
                                {
                                    frag = true;
                                    break;
                                }
                            }
                        } else if (lowC.equals(dictionary))
                        {
                            frag = true;
                            break;
                        }
                    }
                    if (!frag)
                    {
                        bw.write(line + " error :" + check[index - 1]);
                        bw.newLine();
                        check[index - 1] += "*";
                        count++;
                    } else
                        frag = false;
                }
                other += ch[i];
            }
        }
        br.close();
        if (word != "")
        {
            amount++;
            br = new BufferedReader(new FileReader(dicPath));
            if (br.ready())
                br.readLine();
            check[index] = word;
            String lowC = word.toLowerCase();
            while (br.ready())
            {
                dictionary = br.readLine();
                dictionary = dictionary.toLowerCase();
                if (dictionary.indexOf(' ') != -1)
                {
                    String dic[] = p.split(dictionary);
                    for (int j = 0; j < dic.length; j++)
                    {
                        if (lowC.equals(dic[j]))
                        {
                            frag = true;
                            break;
                        }
                    }
                } else if (lowC.equals(dictionary))
                {
                    frag = true;
                    break;
                }
            }
            if (!frag)
            {
                bw.write(line + " error :" + check[index]);
                bw.newLine();
                check[index] += "*";
                count++;
            } else
                frag = false;
        }
        bw.close();
    }

    public String getResult()
    {
        return "Amount: " + amount + "  Error: " + count;
    }

    public String[] getText()
    {
        return check;
    }
}

⌨️ 快捷键说明

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