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

标签 java string indexing charat

我试图找出“哪个 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/

相关文章:

python - 项目在列表中的位置

php - 修复未索引的数据库 MySQL

java - 哪种方式对于异常处理更好

java - 在 Java 中 : do expressions involving constants defined at instantiation get simplified during compile-time?

java - 使用图形 API 在 Facebook 群组上发布照片

string - 如何将字符串列表作为隐藏输入从 jsf 页面传递到请求范围的支持 bean

javascript从数组中随机数返回单个字母/符号

perl - 为什么我的 CPAN 分布没有被 PAUSE 索引?

c# - 如何让protobuf-net和protostuff相互支持.Net和Java中的继承类?

java - 在不分配字符串的情况下在Java中将字符串转换为int