为方法创建一个类并在主类中调用它

时间:2014-03-13 02:26:04

标签: java api class methods wordnet

RiWordnet wordnet = new RiWordnet();
    String word = "apple";
    String[] poss = wordnet.getPos(word);
    boolean check = false;
    String[] synonyms = null;

    for (int j = 0; j < poss.length; j++) {
        synonyms = wordnet.getAllSynonyms(word, poss[j], 50);
        for (int i = 0; i < synonyms.length; i++) {
            System.out.println(synonyms[i]);
        }
    }

    for(int i= 0; i<synonyms.length;i++){
        if(input.contains(synonyms[i])){
            check=true;
        }
    } //end of synonym method

if(synonyms.check(true))
String syn ="that is the synonym of apple.";

所以我正在使用Wordnet API进行同义词识别。上面的代码片段完全正常,但该方法仅适用于单词“apple”。我仍然必须将该方法用于许多其他单词,所以不是为了不同的单词一遍又一遍地复制和粘贴方法,有没有办法让我把方法放在不同的类中并在我调用它时需要用吗?如果是这样,怎么样?

(p.s:我试过把它放在一个类中,但我不知道如何调用方法和“if”语句的布尔值。以下是我的尝试)

public class synonyms {
public static String syn(String word){
    RiWordnet wordnet = new RiWordnet();
    String input = null;
    String[] poss = wordnet.getPos(word);
    boolean check = false;
    String[] synonyms = null;

    for (int j = 0; j < poss.length; j++) {
        synonyms = wordnet.getAllSynonyms(word, poss[j], 50);
        for (int i = 0; i < synonyms.length; i++) {
            System.out.println(synonyms[i]);
        }
    }

    for(int i= 0; i<synonyms.length;i++){
        if(input.contains(synonyms[i])){
            check=true;
        }
    }
}
}

2 个答案:

答案 0 :(得分:1)

也许你想要的是:

public class MySynonyms {
    public static boolean syn(String input, String word){
        RiWordnet wordnet = new RiWordnet();
        String[] poss = wordnet.getPos(word);
        boolean check = false;
        String[] synonyms = null;

        for (int j = 0; j < poss.length; j++) {
            synonyms = wordnet.getAllSynonyms(word, poss[j], 50);
            for (int i = 0; i < synonyms.length; i++) {
                //System.out.println(synonyms[i]);
            }
        }

        for(int i= 0; i<synonyms.length;i++){
            if(input.contains(synonyms[i])){
                check=true;
            }
        }
        return check;
    }
}

并从您的主要班级:

if(MySynonyms.syn("apel","apple"))
{
    //...do something
}
else{
    //...do something
}

答案 1 :(得分:0)

使用类总是一个好主意,但是我不确定代码结构和设计实现的其余部分是什么。要创建对象(使用类),您可以执行以下操作:

首先创建一个Synonym类,其中包含一个名为syn的方法,如下所示:

public class Synonym{
    public static String syn(String word){
        // put your syn checking codes here
    }
}

在此之后,在您的主类(或您需要的任何地方),您可以创建一个新对象,如下所示

Synonym synonym_obj = new Synonym();

对象是类的实例,只要类方法是公共的,您就可以通过synonym_obj使用它们。例如,您可以将以下代码放在需要检查两个单词是否是同义词的位置:

Synonym synonym_obj = new Synonym();
String word = "apple";
if(synonym_obj(word)){
    System.out.println("This is a synonym.");
} else {
    System.out.println("This is not a synonym.");
}

希望能为你澄清事情!