我學習java一步一步:爲什麼布爾值沒有改變?
我有一個實踐問題problem statement link,這是我的代碼:
import java.util.Scanner;
public class Solution {
public static void main(String[] args) {
int test, numProcess = 0;
boolean checkString ;
String alpha = "abcdefghijklmnopqrstuvwxyz";
Scanner sc = new Scanner(System.in);
test = sc.nextInt();
for (int i = 0; i < test; i++) {
String original = sc.nextLine();
checkString = checkPalindrome(original);
while (!checkString) {
char oldchar = original.charAt((original.length() - 1));
char newchar = alpha.charAt((original.indexOf(oldchar) - 2));
original = original.substring(0, original.length()-1)+ newchar;
checkString = checkPalindrome(original);
numProcess++;
}
System.out.println(numProcess);
}
sc.close();
}
public static boolean checkPalindrome(String original) {
String newString = "";
for (int i = (original.length() - 1); i >= 0; i--) {
newString += original.charAt(i);
}
return (newString.equals(original));
}
}
的問題是,當我們試圖爲輸入,
- 爲字符串(IN WHILE LOOP)第一次迭代使得original = abb 然後進入函數,它在第二次迭代中返回false(即是)
- orig inal = aba應該返回checkString = true;
- 下一次while循環應該被繞過,但它再次進入 while循環(我在調試器中試過這個)並且在包含newchar(索引超出範圍)的 行中拋出異常是什麼問題?
請你能工作的問題的格式,使其可讀性。 – NPE 2014-09-22 10:16:34