我试图用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有关。
我只是编程新手,因此我们将非常感谢详细的答案。
答案 0 :(得分:1)
char
是Java中的原始数据类型,可以使用==
进行比较。为了在其上使用.equals()
方法,首先必须将其装入Character
对象中,并将其包裹起来。
编辑:将其写为:
sentence.charAt(sentence.length()-1) == lastChar
DOUBLE EDIT COMBO:您需要重新定义lastchar
char lastChar = '.';