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