//Palindrone from a String
public class Palindrome {
static int track = 0;
public static void main(String args[]){
String str = "abcicbbcdefggfed ";
char[] charArray = str.toCharArray();
Palindrome p1 = new Palindrome();
p1.find_palindrome(charArray);
}
void find_palindrome(char[] ch){
for(int i=0; i< ch.length; i++){
if(ch[i] == ch[i+1]){
checkPalindrome(ch, i, i+1);
}
else{
checkPalindrome(ch,i-1,i+1);
}
}
}
void checkPalindrome(char[] c, int left, int right){
int count=0,l=0,r=0;
while(left >= 0 && right <= c.length){
while(c[left] == c[right]){
left--;
right++;
count = count + 1;
}
break;
}
if(count > track){
track = count;
l = left;
r = right;
}
if(count>1){
for (int j=left+1;j<=right-1;j++){
System.out.println(c[j]);
}
System.out.println("--");
}
}
}
我看到了給定的異常錯誤,我不知道如何解決。我知道它的初學者問題,所以一個解釋和你的答案會真的有幫助。什麼導致ArrayIndexOutOfBoundsException?
編輯:
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 17
at Palindrome.find_palindrome(Palindrome.java:14)
at Palindrome.main(Palindrome.java:8)
如果數組長度爲10,意味着索引從0到9,對不對? –
@CodeEnthusiastic當然,謝謝。 (因爲這個downvoting是多餘的恕我直言)。 – Maroun
我編輯了你的答案,然後我看到我的編輯沒有了,你修改了你的答案。由於答案*失敗,因此被降級*如果你說索引從'0'到'10'。不過,現在看起來很有效。 –