Я создал довольно простой класс (сводится к игре в угадайку), и когда я пытался запустить свой код, ошибка «ошибка: невозможно найти символ» продолжает появляться всякий раз, когда я вызываю метод «.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 эта ошибка продолжает появляться, и я не совсем уверен, какой подход я могу применить, чтобы это исправить.
о да, похоже, я перепутал метод массива и строки, в любом случае спасибо за справочный код, который теперь работает так, как задумано.
Примечание: предпочтительнее использовать RegionMatches вместо комбинации substring
и equals
. Или, если строки содержат только один символ, как в вашем случае, используйте charAt(i)
вместо substring(i, i + 1)
и сравните символы с ==
.
Длина — это метод класса String. Итак, правильный синтаксис должен быть таким: word.length()
, чтобы получить длину строки
Понятно... Я как бы перепутал метод строки и массива для определения длины, в любом случае спасибо за помощь!
Вы забыли ()
.
Вам нужно вызвать length()
.
Вы пытаетесь получить длину строки, используя word.length
, который запрашивает у JVM свойство с именем «длина» строки, которое не является общедоступным. Вы хотите вызвать word.length()
, который является методом и делает именно то, что вам нужно.
Кроме того, я рекомендую использовать правильный отладчик.
«Кроме того, я рекомендую использовать подходящий отладчик». Вероятно, это было бы к лучшему, я просто использую онлайн-компилятор для запуска этого кода.
Вы можете просто установить версию JDK и VSCode с расширением Java. Или даже IntelliJ, Eclipse или NetBeansz, но я считаю их слишком сложными. Просто личное предпочтение.
length
— это метод, а не свойство, поэтомуword.length()