Проверьте, существует ли слово

Программа, которую я пытаюсь создать, выглядит следующим образом: программа, которая создает трехбуквенные слова в формате из букв, введенных пользователем. Одна и та же буква не может использоваться более одного раза, если пользователь не использовал ее более одного раза, и одно и то же слово не может появляться дважды.

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[i]+array[j]+array[k]), кажется, почему-то воспринимается как INT.

2 ответа

Решение

char тип данных в основном небольшой int, Они не струны. Вот почему вы получаете целочисленные арифметические результаты вместо конкатенации строк.

Если вы хотите знать, содержит ли ваш список массивов эти три символа, вам нужно трижды вызвать метод contains.

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

Вам нужно создать строку из них и добавить ее в массив.

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

Я предполагаю, что символ List<String>

Другие вопросы по тегам