📄 correctnessanalyzer.java
字号:
package myprojects_SpellChecker;
import java.util.TreeSet;
import java.util.*;
import java.io.*;
import java.util.regex.*;
class CorrectnessAnalyzer{
private TreeSet myTree;
private String Word;
private String[] similarWords=new String[8];
//构造方法
public CorrectnessAnalyzer(TreeSet T) {
myTree=T;
}
//查找单词是否存在字典中
public boolean getWordRightness(String str) {
Word=str;
for(int k=0;k<8;k++) {
similarWords[k]=null;
}
if(myTree.contains(Word)){
return true;
}
//找不到时候,查找相近的单词
String key;
Iterator te=myTree.iterator();
te=myTree.iterator();
int i=0;
if(Word.length()>=3)
while(te.hasNext()&&i<8) {
String findWord=te.next().toString();
if(Pattern.matches("[a-z]{0,2}"+Word+"[a-z]{0,3}", findWord)) {
similarWords[i]=findWord;
i++;
continue;
}
if(Pattern.matches(Word.substring(0,Word.length()-1)+"[a-z]{0,3}",findWord)) {
similarWords[i]=findWord;
i++;
continue;
}
if((Word.length()-2)<findWord.length()&&findWord.length()<(Word.length()+3)) {
boolean is=true;
for(int j=0;j<Word.length();j++) {
key=Word.substring(j,j+1);
if(!Pattern.matches("[a-z]*"+key+"[a-z]*",findWord)) {
is=false;
break;
}
}
if(is==true) {
similarWords[i]=findWord;
i++;
continue;
}
}
}
if(similarWords[0]==null){
similarWords[0]="没有相近单词";
}
return false;
}
public boolean isExist(String str) {
Word=str;
if(myTree.contains(Word)){
return true;
}
return false;
}
public void findSimilarWords(String str){
//找不到时候,查找相近的单词
Word=str;
for(int k=0;k<8;k++) {
similarWords[k]=null;
}
String key;
Iterator te=myTree.iterator();
int i=0;
if(Word.length()>=3)
while(te.hasNext()&&i<8) {
String findWord=te.next().toString();
if(Pattern.matches("[a-z]{0,2}"+Word+"[a-z]{0,3}", findWord)) {
similarWords[i]=findWord;
i++;
continue;
}
if(Pattern.matches(Word.substring(0,Word.length()-1)+"[a-z]{0,3}",findWord)) {
similarWords[i]=findWord;
i++;
continue;
}
if((Word.length()-2)<findWord.length()&&findWord.length()<(Word.length()+3)) {
boolean is=true;
for(int j=0;j<Word.length();j++) {
key=Word.substring(j,j+1);
if(!Pattern.matches("[a-z]*"+key+"[a-z]*",findWord)) {
is=false;
break;
}
}
if(is==true) {
similarWords[i]=findWord;
i++;
continue;
}
}
}
if(similarWords[0]==null){
similarWords[0]="没有推荐的相似单词";
}
}
public String[] getsimilarWords(){
return similarWords;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -