2015-10-23 76 views
-1

我想用bluej編寫一個簡單的翻譯程序。到目前爲止,所有的東西都運行良好。我一直在代碼中檢查句子的最後一個字符是句號,否則顯示錯誤信息的部分會出現「字符無法解除引用」的錯誤。字符不能解除引用

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

char是Java中的原始數據類型,可以使用==進行比較。爲了使用.equals()方法,它首先必須裝入一個Character對象中,並纏繞它。

編輯:把它寫成:

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

DOUBLE編輯COMBO:您需要重新定義lastchar

char lastChar = '.'; 
+0

所以,我怎麼會重寫代碼呢?我將(sentence.charAt(sentence.length() - 1)!=「。」)作爲新行,但現在提供了無法比擬的數據類型。對不起,對於簡單的問題,但我只學習:) –

+0

同樣的錯誤! Theres東西,即時消失,我認爲我宣佈lastChar正確? String lastChar =「。」; –

+0

那就是那個!終於有了它的工作。非常感謝! –