2015-02-23 2 views
-4

Я пытаюсь получить ввод от консоли, назначить ее строковой переменной. Тогда я хотел бы конкатенировать его с другой переменной. Если пользователь вводит правильный символ каждый раз, он скоро произнесет слово. Как только это слово соответствует желаемому, цикл останавливается. Нужна ваша помощь.Невозможно скомпилировать. Сообщение об ошибке

public class expl { 

    public static void main(String[] args) { 
     String consatinate = "a"; 
     String needed = apple; 
     while (!consatinate.equals(needed)) { 
      System.out.println("Enter a letter"); 
      String input = System.console().readLine(); 
      consatinate = consatinate.concat(input);   
      System.out.println(consatinate); 
     } 
    } 
} 

Сообщение об ошибке:

Exception in thread "main" java.lang.Error: Unresolved compilation problem: apple cannot be resolved to a variable at expl.main(expl.java:6)

+2

С какой ошибкой вы столкнулись? Кроме того, что такое 'apple' (вы, похоже, знаете, как создавать литералы String с тех пор, как вы уже создали один -' 'a' '- и вы, возможно, забыли окружить его' '')? – Pshemo

+0

Исключение в потоке «главная» java .lang.Error: Нерешенные проблемы компиляции: \t яблока не может быть решен с переменными \t в expl.main (expl.java:6) жаль должны были дать это –

+0

не публикуйте важную информацию, как сообщения об ошибках, как комментарий Вместо этого поставьте его под сомнение, используя опцию [edit] (помещенную ниже вашего сообщения). – Pshemo

ответ

1

Apple, является символьная строка, поэтому он должен иметь цитаты вокруг него:

public class expl { 

    public static void main(String[] args) { 
     Scanner inputScanner = new Scanner(System.in); 
     String consatinate = "a"; 
     String needed = "apple"; 
     while (!consatinate.equals(needed)) { 
      System.out.println("Enter a letter"); 
      String input = inputScanner.nextLine(); 
      consatinate = consatinate.concat(input);   
      System.out.println(consatinate); 
     } 

     inputScanner.close(); 
    } 
} 

Я также предполагаю, что "consatinate" должен быть назван конкатенации , но это только догадка.

+0

после исправления яблока это говорит Исключение в теме «main» java.lang.NullPointerException \t at expl.main (expl.java:9) И я знаю о написании, я сделал это целиком, потому что это просто имя переменной. я ошибаюсь. –

+1

@HonestLearner это другой проблема, который заслуживает другого вопроса. Но чтобы избежать этого, посмотрите на http://stackoverflow.com/questions/26470972/trying-to-read-from-console-java/26473083#26473083 – Pshemo

+0

Ваша проблема с нулевым указателем связана с вопросом здесь: http://stackoverflow.com/questions/104254/java-io-console-support-in-eclipse-ide Однако, я обновил ответ для вас, чтобы использовать сканер. – ThePerson

Смежные вопросы