2012-11-08 28 views
3

此代碼工作,但醜:的java超出範圍環路

for (int i = 0, l=1; i < word.length() && l < word.length(); i++, l++) { 
    char c = word.charAt(i); 
    j = (int) c; 
    char nextRank = word.charAt(l); 
    k = (int) nextRank; 
} 

我想他變成這樣的事情:

for (int i = 0; i < word.length(); i++) { 
    char c = word.charAt(i); 
    j = (int) c; 
    char nextRank = word.charAt(i+1); 
    k = (int) nextRank; 
} 

這個方法返回一個錯誤:String index out of range。我明白爲什麼:當涉及到最後一個字母「char nextRank = word.charAt(i + 1);」已經無事可做了。

但我不知道如何解決這個問題!

+0

如果你不那麼知道誰知道? –

回答

2

病人:

醫生 「當我做到這一點的條件下它傷害」: 「好吧,那麼如果條件滿足,不這樣做,」

if(i+1 < word.length) 
{ 
    char nextRank = word.charAt(i+1); 
    ... 
3

1

for (int i = 1; i < word.length(); i++) { 
     char c = word.charAt(i-1); 
     j = (int) c; 
     char nextRank = word.charAt(i); 
     k = (int) nextRank; 
    } 
1
int length = word.length() - 1; 
for (int i = 0; i < length; i++) { 
    char c = word.charAt(i); 
    j = (int) c; 
    char nextRank = word.charAt(i + 1); 
    k = (int) nextRank; 
} 
開始 i
0
for (int i = 0; i < word.length()-1; i++) { 
      char c = word.charAt(i); 
      j = (int) c; 
      char nextRank = word.charAt(i+1); 
      k = (int) nextRank; 
     } 
0

你只需要循環從0到word.length()-1只是減少我的極限。

 for (int i = 0; i < word.length() - 1; i++) { 
      char c = word.charAt(i); 
      j = (int) c; 
      char nextRank = word.charAt(i+1); 
      k = (int) nextRank; 
     } 
+0

感謝大家的幫助,現在它完美無缺! :) – Dovakin940

2

如何

for (int i = 0; i < word.length() - 1; i++) {