2016-05-01 83 views
0
  1. 我是新來的,所以沒有火焰請。StringIndexOutOfBoundsException解決方案CodingBat maxBlock

  2. 我知道我可以在網上找到解決方案,但我做不到,但我無法理解StringIndexOutOfBoundsException錯誤是如何發生在我的代碼中的。

public int maxBlock(String str) { 

    int max = 0; 

    for(int i = 0; i < str.length() - 1; i++){ 
     int c1 = 0; 
     for(int j = i + 1; i < str.length(); j++){ 
      if(str.charAt(i) == str.charAt(j) && j - i == 1) 
       c1++; 
     } 
     if(c1 > max) 
      max = c1; 
    } 
    return max; 
} 

編輯:解決:d

+4

錯字:'int j = i + 1;我'int j = i + 1; j Tunaki

+3

什麼是錯誤?如果你試圖在這裏遵守規則,沒有人會責罵你,放鬆 –

+0

@Tunaki神聖的地獄,謝天謝地:D –

回答

0

會出現錯誤在用於當i到達最終值循環的最後一次迭代,因爲str.charAt(j)不能達到(StringIndexOutOfBoundsException)作爲ji + 1

簡而言之,當它到達第一個for循環中的最後一個字符時,它在使用時找不到索引j處的字符