java - ArrayIndexOutOfBoundsException 的数组足够大,可以容纳我提供的数据

标签 java arrays indexoutofboundsexception

我做了以下方法:

static int GenerateSeccondPal(int x){
    String y = Integer.toString(x);
    char[] z1 = y.toCharArray();
    char[] z2 = new char[y.length() / 2];

    for (int count = (z1.length /2); count <= z1.length; count++) {
        z2[count] = z1[count];
    }
    return Integer.parseInt(new String(z2));

}

但是,当我运行它时,我收到此错误:

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 3 at challenges.Problem_4.GenerateSeccondPal(Problem_4.java:31) at challenges.Problem_4.main(Problem_4.java:6)

这很奇怪,因为我制作的另一种方法:

static int GenerateFirstPal(int x) {
    String y = Integer.toString(x);
    char[] z1 = y.toCharArray();
    char[] z2 = new char[z1.length / 2];

    for (int count = 0; count < z1.length / 2; count++) {
        z2[count] = z1[count];
    }
    return Integer.parseInt(new String(z2));

}

工作完美。我写的有什么问题吗?

最佳答案

其他人指出了数组问题,但我根本不明白你为什么要使用数组。只需使用子字符串:

static int generateFirstPal(int x) {
    String y = String.valueOf(x);
    String firstPart = y.substring(0, y.length() / 2);
    return Integer.parseInt(firstPart);
}

static int generateSecondPal(int x) {
    String y = String.valueOf(x);
    String secondPart = y.substring(y.length() / 2);
    return Integer.parseInt(secondPart);
}

坦白说,无论如何,这看起来都是一个奇怪的设计......您确定首先这是正确的行为吗?鉴于您正在处理数字,根本不清楚为什么需要字符串表示形式。根据字符串的预期长度,我期望如下所示:

static int generateFirstPal(int x) {
    return x / 1000;
}

static int generateSecondPal(int x) {
    return x % 1000;
}

例如,这会将 123456 拆分为 123 和 456。根据您的实际值调整 1000。

关于java - ArrayIndexOutOfBoundsException 的数组足够大,可以容纳我提供的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6573965/

相关文章:

javascript - 获取数组中搜索结果的索引

java - 在 java 和 jquery 中重定向 ajax 调用

java - Multi-Tenancy Spring JPA : Dynamic dialects resolution for dynamic datasources

java - Spring 注入(inject)问题

jquery - 使用 inArray() 检查坐标是否在 jQuery 数组中

java - 查找每一行的整数和字符串并将它们放入数组中?

java - 为什么我的 int[] 数组循环越界?

Android ViewFlow setFlowIndicator IndexOutOfBoundException 异常

python - 通过 Pandas 中的函数替换 NaN 时索引超出范围

java - Neo4j : cypher queries in java give no feedback