Найти все позиции вхождения в массиве символов

1

Я пытаюсь написать метод, который принимает одну букву (строку) и char aray, которая создает логический массив. Булевский массив затем инициализируется со всеми позициями как false. Затем цикл for выполняет итерацию через массив char и для каждой позиции, где буква (угадание) найдена в массиве char, то же положение в булевом массиве помечено как true. Проблема заключается в секции if цикла for. Синтаксис не соответствует моему JDE. Любые советы с благодарностью получили.

    boolean[] printIfTrue = new boolean[wordInArray.length];
    for (int i = 0 ; i == wordInArray.length ; i++) {
        if (wordInArray[i] == guess ){                   // problem
            printIfTrue[i] == true;                      // problem
        }

    }

    return printIfTrue;
}
  • 1
    Какие типы wordInArray и printIfTrue ? В любом случае, printIfTrue[i] == true; должно быть с = , а не == .
  • 0
    guess должна быть типа char ; это типа string ?
Показать ещё 1 комментарий
Теги:
arrays
loops

3 ответа

1
Лучший ответ

Цикл можно переписать следующим образом. Кроме того, guess должна быть типа char.

for (int i = 0 ; i < wordInArray.length ; i++) {
    printIfTrue[i] = wordInArray[i] == guess;
}
  • 0
    Upvote для крутого аватара и имени пользователя
  • 0
    Спасибо! На самом деле, мне понадобилось некоторое время, чтобы установить соединение.
0

== Реляционный оператор
== Проверяет, равны ли значения двух операндов или нет, если да, то условие становится истинным.

(A == B) is not true. 

= Оператор присваивания

= Простой оператор присваивания, Назначает значения из правых операндов в левый операнд

C = A + B will assign value of A + B into C

Не смешивайте их, и, как сказал @JB Nizet,

вы не можете напрямую сравнивать String с Character, я предполагаю, что wordsInArray - ваш массив символов, и предположим, что это String, поэтому вы можете использовать

wordsInArray[i]==guess.charAt(i);
printIfTrue[i] = true;
0

Вы не можете сравнить String с char. Ваша переменная guess должна иметь тип char (используя параметр guess = valueEnteredByTheUserAsString.charAt(0)).

== - оператор сравнения. Чтобы присвоить значение переменной, вы должны использовать =:

printIfTrue[i] = true;

Я читаю == так же, как:

if (wordInArray[i] == guess )

читается как

если i-й символ словаInArray совпадает с предположением

Я читаю = как становится или принимает значение:

printIfTrue[i] == true; 

читается как

i-й элемент printIfTrue становится истинным

  • 0
    Спасибо за совет. Теперь это работает.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню