gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-01 17:35:43 24 4
gpt4 key购买 nike

我做了以下方法:

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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com