【问题标题】:Can't compile. Error message无法编译。错误信息
【发布时间】:2015-02-23 21:34:05
【问题描述】:

我正在尝试从控制台获取输入,将其分配给字符串变量。然后我想将它与另一个变量连接起来。只要用户每次都输入正确的字符,很快就会组成一个单词。一旦这个词与所需的词匹配,循环就会停止。 不过需要你的帮助。

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);
        }
    }
}

错误信息:

线程“主”java.lang.Error 中的异常:未解决的编译 问题:苹果无法解析为变量 expl.main(expl.java:6)

【问题讨论】:

  • 您遇到的错误是什么?还有什么是apple(你似乎知道如何创建字符串文字,因为你已经创建了一个 - "a" - 所以你可能忘了用"包围它)?
  • 线程“main”java.lang.Error 中的异常:未解决的编译问题:apple 无法解析为 expl.main(expl.java:6) 处的变量,抱歉应该给它
  • 不要将错误信息等重要信息作为评论发布。而是使用edit 选项(放置在您的帖子下方)提出问题。

标签: java string variables


【解决方案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”应该被命名为 concatenate,但这只是一个猜测。

【讨论】:

  • 在纠正苹果后,它在 expl.main(expl.java:9) 处显示线程“main”中的异常 java.lang.NullPointerException 我知道拼写,我是故意这样做的,因为它只是一个变量的名称。也许我错了。
  • @HonestLearner 这是不同的问题,值得不同的问题。但要避免它,请查看*.com/questions/26470972/…
  • 您的空指针问题与这里的问题有关:*.com/questions/104254/… 但是,我已经更新了您使用扫描仪的答案。
  • 如果它对你有用,请记得点击绿色勾号将其标记为答案 - 非常感谢。
  • 如果我需要声誉。))))))))))) 不幸的是这次不是。