char不能被解除引用

时间:2015-10-23 14:59:19

标签: java

我试图用bluej编写一个简单的翻译程序。到目前为止,一切都顺利进行到现在。我一直在" char不能被解除引用"代码中的错误,它检查句子的最后一个字符是否为句号,否则显示错误消息。

while ((sentence.length() <= 1) || (sentence.charAt(!sentence.length()-1).equals (lastChar))) {
    System.out.println("\nSentence is invalid, please include a full stop and make sure\nyour sentence is longer than 2 characters long.\nPlease enter another sentence.");
    sentence = scan.next();
}

确保长度大于2的检查工作正常,但另一项检查无法正常工作。

(sentence.charAt(sentence.length()-1).equals (lastChar)))

问题似乎与.equals有关。

我只是编程新手,因此我们将非常感谢详细的答案。

1 个答案:

答案 0 :(得分:1)

char是Java中的原始数据类型,可以使用==进行比较。为了在其上使用.equals()方法,首先必须将其装入Character对象中,并将其包裹起来。

编辑:将其写为:

sentence.charAt(sentence.length()-1) == lastChar

DOUBLE EDIT COMBO:您需要重新定义lastchar

char lastChar = '.';