Ошибка при вызове метода «.length» для переменной экземпляра

Я создал довольно простой класс (сводится к игре в угадайку), и когда я пытался запустить свой код, ошибка «ошибка: невозможно найти символ» продолжает появляться всякий раз, когда я вызываю метод «.length» для моей переменной экземпляра.

переменная экземпляра:

 private String word;

методы, в которых ошибка продолжает появляться:

private String inWord(String str, int index)
{
        if (str.equals(word.substring(index, index + 1)))
            return str;
        else
        {
            for(int i = 0; i < word.length; i++)
            {
                if (i != index && str.equals(word.substring(i, i + 1)))
                    return "+";
            }
        }
        return "*";
}
    
public String getHint(String str)
{
        String hint = "";
        for(int i = 0; i < word.length; i++)
        {
            hint += inWord(str.substring(i, i + 1), i);
        }
        return hint;
}

в обоих циклах for эта ошибка продолжает появляться, и я не совсем уверен, какой подход я могу применить, чтобы это исправить.

length — это метод, а не свойство, поэтому word.length()
Federico klez Culloca 23.04.2024 20:58

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

nnmk1 23.04.2024 21:01

Примечание: предпочтительнее использовать RegionMatches вместо комбинации substring и equals. Или, если строки содержат только один символ, как в вашем случае, используйте charAt(i) вместо substring(i, i + 1) и сравните символы с ==.

Holger 24.04.2024 11:14
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
1
3
56
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Длина — это метод класса String. Итак, правильный синтаксис должен быть таким: word.length(), чтобы получить длину строки

Понятно... Я как бы перепутал метод строки и массива для определения длины, в любом случае спасибо за помощь!

nnmk1 23.04.2024 21:05

Вы забыли ().

Вам нужно вызвать length().

Ответ принят как подходящий

Вы пытаетесь получить длину строки, используя word.length, который запрашивает у JVM свойство с именем «длина» строки, которое не является общедоступным. Вы хотите вызвать word.length(), который является методом и делает именно то, что вам нужно.

Кроме того, я рекомендую использовать правильный отладчик.

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

nnmk1 23.04.2024 21:12

Вы можете просто установить версию JDK и VSCode с расширением Java. Или даже IntelliJ, Eclipse или NetBeansz, но я считаю их слишком сложными. Просто личное предпочтение.

Achille004 24.04.2024 12:53

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