2012-05-11 24 views
1
  if(Character.isDigit(character) && Character.isDigit(expression.charAt(x+1))) 
      { 
       output += character; 
      } 
      else if(Character.isDigit(character)) 
      { 
       output += character + " "; 
      } 
      else 
      { 
       output += character; 
      } 

此代碼塊是一個更大的for循環遍歷字符串。 x + 1導致StringOutOfBoundsException,有什麼辦法可以避免它嗎?quick StringOutOfBoundsException詢問

+1

是:不調用的charAt (x + 1)if x == expression.length() - 1. –

回答

4

您可以添加額外的檢查的x + 1值小於字符串的長度,以確保您不索引過去字符串的結尾:

if (Character.isDigit(character) && 
    (x + 1) < expression.length && 
    Character.isDigit(expression.charAt(x+1))) 
+0

感謝您的快速回答:) – Singh