我学习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