【问题标题】:Converting String to int array, java.lang.ArrayIndexOutOfBoundsException: 6将 String 转换为 int 数组,java.lang.ArrayIndexOutOfBoundsException: 6
【发布时间】:2013-12-28 21:13:54
【问题描述】:

这是我的代码的一个小 sn-p,它试图将长度为 6 的字符串转换为 int 数组。

int[] intArray=new int[6];
int i = 0;
String s = jTextField2.getText();
int strLength = s.length();
if(strLength != 6) {
  jTextArea1.setText("Not a valid length");
} else {
  for(i=0;i<6;i++) {
    intArray[i] = Integer.parseInt(String.valueOf(s.charAt(i)));
  }
}

这出现了一个超出范围的异常,我不明白为什么。

感谢您的帮助。

【问题讨论】:

  • s的值是多少?
  • s的长度为6。例如:123456
  • 看起来你的代码没问题,但是 jTextField2.getText() 正在返回 null 检查
  • 尝试使用 jTextField2.getText().toString()。只是一个建议
  • 如需尽快获得更好的帮助,请发帖SSCCE

标签: java arrays exception user-interface indexoutofboundsexception


【解决方案1】:

这个

public static void main(String[] args) {
  int[] intArray=new int[6];
  int i = 0;
  String s = "123456";
  int strLength = s.length();
  if(strLength != 6) {
    System.out.println("Not a valid length");
  } else {
    for(i=0;i<6;i++) {
      if (!Character.isDigit(s.charAt(i))) {
        System.out.println("Contains an invalid digit");
        break;
      }
      intArray[i] = Integer.parseInt(String.valueOf(s.charAt(i)));
    }
  }
  System.out.println(Arrays.toString(intArray));
}

打印

[1, 2, 3, 4, 5, 6]

这里。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-04-06
    • 2013-01-08
    • 1970-01-01
    • 2011-11-30
    • 1970-01-01
    • 2011-10-16
    相关资源
    最近更新 更多