我的應用程序有問題。我希望應用程序檢測到,如果用戶沒有爲該字符串輸入任何值(換句話說,在被要求輸入內容後按回車鍵),應用程序會詢問他/她是否希望退出該程序。
我在做對吧?掃描器的空字符串
words = s.nextLine();
if (words.equals(null)) {
我的應用程序有問題。我希望應用程序檢測到,如果用戶沒有爲該字符串輸入任何值(換句話說,在被要求輸入內容後按回車鍵),應用程序會詢問他/她是否希望退出該程序。
我在做對吧?掃描器的空字符串
words = s.nextLine();
if (words.equals(null)) {
不,你不這樣做是正確的。
nextLine()
將返回一個空字符串,如果用戶剛剛返回。據我所知,從不返回null
。如果已達到輸入的結尾,則將拋出NoSuchElementException
(與BufferedReader.readLine()
不同,其中將在該情況下返回null)。所以,你想:
if (words.equals(""))
或
if (words.length() == 0)
或
if (words.isEmpty())
...並使用hasNextLine()
如果你想先檢測輸入的結束。
這應該工作:
if (words == null || words.length() == 0) {
字符串有一個length()方法沒有長度屬性:P – PermGenError
如果'words'爲null,'words.equals(null)'將導致空指針異常 –
touché,你是對的!我不知道這是一個字符串或字符[] – Chexpir
空是不正確的,因爲你得到的是一個空字符串:
使用: words.isEmpty()
或 words.equals("")
或 words.length()==0
返回的字符串isnt null,它只是一個空字符串。
words.equals("");
應該是正確的
也許你應該檢查空字符串,而不是空? – ArVan
親自試一試,看看它是否有效? –