字符串是迴文,如果它以相同的方式向後拼寫並且 向前。jva中的字符串索引超出範圍
迴文的例子包括「雷達」和「該死的,我瘋了!」。
編寫一個java程序,PalindromeTester,要求用戶輸入一個 單詞或句子,然後檢查輸入的字符串是否是 迴文。
空間,nonalphabetics: - ;毫無生氣的傻瓜,孤傲的吟遊詩人 「是 迴文(()\」,並在字符串中的情況下有 被忽略例如,。!?)「。
你的實現應該定義和使用方法isPalindrome到 測試,如果某些字符串是迴文的 isPalindrome方法的簽名如下:。
boolean isPalindrome(String)
以下是該程序的運行示例用戶的輸入以粗體顯示
java PalindromeTester Introduction to Computer Programming (CMPS 200) Spring 2015-16 2 of 3 Enter a string: I love CMPS 200 The string "I love CMPS 200" is NOT a palindrome.
這是我做的代碼,它不斷給我一個錯誤。
我想知道我的錯誤,以及是否有後z = z + 1;
編寫這些代碼
import java.util.Scanner;
public class PalindromeTester {
public static void main (String args []) {
Scanner console = new Scanner(System.in);
System.out.println("Enter a string: ");
String palindrome = console.next();
if (isPalindrome (palindrome)) {
System.out.print("The string \""+palindrome+" is a palindrome.");
} else {
System.out.print("The string \""+palindrome+" is NOT a palindrome.");
}
}
public static boolean isPalindrome (String palindrome) {
int constant = 1;
for (int i = 0 ; i <= (palindrome.length()-1) ; i++) {
for (int z= (palindrome.length()-1);i >= 0; i--) {
if (palindrome.charAt(i) <'@'||'Z'<palindrome.charAt(i)&&palindrome.charAt(i)<'`'||'['<palindrome.charAt(i)&&palindrome.charAt(i)<'{') {
i=i+1;
}
if (palindrome.charAt(z)<'@'||'Z'<palindrome.charAt(z)&&palindrome.charAt(z)<'`'||'['<palindrome.charAt(z)&&palindrome.charAt(z)<'{') {
z=z+1;
}
if (palindrome.charAt(i)==(palindrome.charAt(z))) {
constant = constant * 1;
} else {
constant = constant * 0;
}
}
}
if (constant == 0) {
return false;
} else {
return true;
}
}
}
請出示你所得到的錯誤。 – Jason
異常在線程 「主」 java.lang.StringIndexOutOfBoundsException:字符串索引超出範圍:7 \t在java.lang.String.charAt(未知來源) \t在PalindromeTester.isPalindrome(PalindromeTester.java:23) \t在PalindromeTester.main(PalindromeTester.java:8) 是我得到的錯誤 –