下面的代码出现问题,我只需要将字符串中的字母转换为字符,当我运行测试时,当代码到达 char c = t.charAt 时,我不断收到错误(0);
确切的错误消息是:
java.lang.StringIndexOutOfBoundsException: String index out of range: 0
我无法让它将字符串字母转换为字符。任何提示将不胜感激。
String[] zombies;
int num = 0;
Vector<Zombie> practice = new Vector<Zombie>();
String zombieString = "SZI1";
zombies = zombieString.split("");
for (String t : zombies) {
if (isNumeric(t)) {
int multiplier = Integer.parseInt(t);
String extraZombie = zombies[num - 1];
char x = extraZombie.charAt(0);
for (int i = 0; i <= multiplier; i++) {
Zombie zombie = Zombie.makeZombie(x);
practice.add(zombie);
}
} else {
char c = t.charAt(0);
//Zombie zombie = Zombie.makeZombie(c);
//practice.add(zombie);
num++;
}
}
最佳答案
您的 split("") 返回一个空字符串,如果您对空字符串调用 charAt(0) ,则会出现此错误。
要解决这个问题,您可以将 split("") 操作替换为 toCharArray(),这将直接生成一个字符数组:
char[] zombies = zombieString.toCharArray();
关于java - 将字符串转换为字符时出现 StringIndexOutOfBoundsException。可能的原因?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16126974/