检查单词是否存在

时间:2013-05-29 09:47:59

标签: java char generator words letters

我试图制作的节目是: 从用户输入的字母中生成三个字母单词的程序。同一个字母不能多次使用,除非用户多次使用它,并且同一个字不能出现两次。

public class JavaApplication1 {

private static boolean Vowel (char c){
    return (c == 'a' || c == 'e' || c == 'o' || c == 'u' || c == 'i');
}

public static void main(String[] args) {

    char[] array = {'b', 'c','a', 'd', 'e', 'b'}; 
    //List<Character> chars = new ArrayList<Character>();
    String words = "";

    for(int i = 0; i < array.length; i++){ 
        if(Vowel(array[i]) == true){
            continue;
        }
        for(int j = 0; j < array.length; j++){
            if(Vowel(array[j]) == false){
            continue;
            }
            for(int k = 0; k < array.length; k++){
                if(Vowel(array[k]) == true){
                    continue;
                }
                if(array[k] == array[i]){
                    continue;
                }
                else{//here it should check if the word already exists 
                    if(chars.contains((array[i] + array[j] + array[k]))){
                        continue;
                    }
                    else{
                        chars.add(array[i]);
                        chars.add(array[j]);
                        chars.add(array[k]);
                    }
                }
            }
        }
    }
    System.out.print(chars.toString());
  }
}

我遇到麻烦的地方是......检查这个单词是否已经存在。我试过使用Array列表字符串,char数组。 (array [i] + array [j] + array [k])由于某种原因似乎被视为INT。

2 个答案:

答案 0 :(得分:1)

char数据类型基本上是一个小int。它们不是字符串。这就是为什么你得到整数算术结果而不是字符串连接。

如果你想知道你的数组列表是否包含这三个字符,你需要三次调用contains方法。

if(chars.contains(array[i]) && chars.contains(array[j]) && chars.contains(array[k]))

答案 1 :(得分:1)

您需要从这些字符串创建一个字符串并将其添加到数组中。

String word = array[i] + "" + array[j] + "" + array[k];
if (chars.contains(word)) {
    continue;
} 
else {
    chars.add(word);
}

我认为字符是List<String>