Неожиданная ошибка типа при запуске charAt в java

При попытке запустить небольшую программу на java я получаю следующую ошибку:

HangmanSB.java:19: error: unexpected type
            if (sentence.charAt(i) = " "){
                               ^
  required: variable
  found:    value
1 error

Я попытался прочитать ответы на аналогичный вопрос, размещенный на этом веб-сайте, но все еще не могу понять, как исправить ошибку, которую выдает мне программа.

import java.util.Scanner;

class HangmanSB {

   public static void main(String[] args){

      Scanner keyboard = new Scanner(System.in);

      String sentence = keyboard.nextLine();

      int turns = keyboard.nextInt();

      for (int turnsLeft = turns; turnsLeft > 0; turnsLeft--){

         int length = sentence.length();

         for (int i = 0; i < length; i++){

            if (sentence.charAt(i) = " "){
               System.out.println(" ");
            }

            else {
               System.out.print("_");
            }
         }
      }
  }

}

Возможный дубликат Как проверить, равен ли символ пустому пространству?

Pavneet_Singh 23.04.2018 16:54
= - это оператор присваивания, == - оператор сравнения на равенство. Вы не можете назначить что-либо для вызова функции.
OH GOD SPIDERS 23.04.2018 16:55

Компилятор жалуется на присвоение = вместо ==, символы тоже должны быть заключены в одинарные кавычки

Klaimmore 23.04.2018 17:00
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
2
3
539
4

Ответы 4

Есть две ошибки:

public char charAt(int index) метод возвращает char

а также

вам нужно использовать == вместо оператора присваивания =

Таким образом используйте:

if (sentence.charAt(i) == ' '){
    System.out.println(" ");
}

ваша ошибка здесь:

 if (sentence.charAt(i) = " ")

измените это на это

if (sentence.charAt(i) == ' ')

используйте == для сравнения int или char

Если я это сделаю, я получаю следующую ошибку: HangmanSB.java:19: error: несовместимые типы: char и String if (offer.charAt (i) == "") {^ 1 error

Leo 23.04.2018 16:56

Также неправильные двойные кавычки. Должен быть ' ' (символ) вместо " " (строка).

khelwood 23.04.2018 16:56
if (sentence.charAt(i) == ' '){

Правильное решение, но было бы хорошо объяснить, почему это исправление, чтобы они могли изучить и понять и избежать проблем в будущем.

Ascalonian 23.04.2018 17:02

Есть 2 типа ошибок = и " "

Для сравнения значения char используйте ' ' и ==.

Как это :

if (sentence.charAt(i) == ' ')

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