gpt4 book ai didi

Java charAt() 字符串索引超出范围

转载 作者:行者123 更新时间:2023-12-01 11:19:53 27 4
gpt4 key购买 nike

我试图找出“哪个 5 位数字乘以 4 可以得到它的倒数?”使用此代码但出现错误:

Exception in thread "main" java.lang.StringIndexOutOfBoundsException:
String index out of range: 5 at java.lang.String.charAt(String.java:658) at
Digits.main(Digits.java:15)

我想弄清楚(请有人解释)为什么会发生这种情况。我想将我的 charAt 保留在我的代码中而不是使用 StringBuilder (StringBuilder.reverse())如果可能的话。

public class Digits{
public static void main(String[] args) {
int n = 0;
int b = 0;
String number = "";
String backwards = "";

for (int x = 9999; x <= 99999 ; x++ ) {
n = x;
b = x * 4;
number = Integer.toString(n);
backwards = Integer.toString(b);

if ( number.charAt(0) == backwards.charAt(4) && number.charAt(1) == backwards.charAt(3)
&& number.charAt(2) == backwards.charAt(2) && number.charAt(3) == backwards.charAt(1)
&& number.charAt(4) == backwards.charAt(0)) {
System.out.println(n);
break;
}
}

谢谢

最佳答案

代码运行没有异常,测试的代码如下:

public class Digits {

public static void main(String[] args) {
int n;
n = 0;
int b;
b = 0;
String number;
number = "";


String backwards;
backwards = "";

for (int x = 9999; x <= 99999; x++) {
n = x;
b = x * 4;
number = Integer.toString(n);
backwards = Integer.toString(b);

if (number.charAt(0) == backwards.charAt(4) && number.charAt(1) == backwards.charAt(3)
&& number.charAt(2) == backwards.charAt(2) && number.charAt(3) == backwards.charAt(1)
&& number.charAt(4) == backwards.charAt(0)) {
System.out.println(n);
break;
}
}
}
}

这段代码的输出是21978

关于Java charAt() 字符串索引超出范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31376161/

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