java - 将字符串转换为字符时出现 StringIndexOutOfBoundsException。可能的原因?

标签 java

下面的代码出现问题,我只需要将字符串中的字母转换为字符,当我运行测试时,当代码到达 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/

相关文章:

java - 带注释的时间线 GWT 中的日期和时间

java - 生成随机打印卡的方法

java - MVVM 中是否允许操作?安卓

java - Lucene 锁定异常

java - Web 服务响应超时?

java - 当我的 HTML 文件位于 WebContent 文件夹中时,为什么在 Tomcat 7.0.70 上会出现错误 404(请求的资源不可用。)?

java - 使用不提供 WADL 的 REST 服务

java - 在对话框中显示不断变化的图片循环?

java - 如何每 2 分钟调用一个方法直到它返回 true?

java - 无法执行目标 org.openjfx :javafx-maven-plugin