2013-09-23 60 views
0

我正在使用java。我正在嘗試取出8個字符或更少字的最後一個字母。然後拉出每個字符後爲什麼不打印該單詞的最後一個字符?

lengthOfWord = word.length(); 
    lc = word.charAt(lengthOfWord -1); 

    if (lengthOfWord == 1) 
     System.out.println(lc); 

當我試圖用一個詞一個字,它說:「字符串索引超出範圍:-1」,當我嘗試使用的兩個字符一句話,它說建成功,但不打印任何東西。

+0

請還包括了什麼事。我懷疑它沒有默默地失敗,並且錯誤信息包含有關該問題的提示... –

回答

0

lengthOfWord是0的基礎,所以你可能想嘗試lc = word.charAt(lengthOfWord - 1);

1

lengthOfWord已經過了word的界限。用途:

lc = word.charAt(lengthOfWord - 1); 

記住。長度()返回一個對象的字符數,而是一個對象的索引開始於0length()-1結束。

UPDATE 試試這個檢查所有字符的字:

for (int i = 0; i < word.length(); i++) { 
    System.out.println("Char " + i + ": " + word.charAt(i)); 
} 
+0

嗯,我試過了,我不再發生錯誤,但是我的程序沒有打印任何東西。它只是說構建是成功的。我編輯了我的問題以顯示我所嘗試的內容。 –

+0

「word」在它的結尾有可能是空白字符嗎? – LeMazing

+0

嘗試更新我的答案。如果您在任何地方都不應該有空白字符,那麼代碼中的其他地方會出現問題。如果打印輸出爲5個字符,但單詞中只有4個字符,則會出現問題。 – LeMazing

相關問題