请问这个错在哪里????? char[] letter={'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z'};
int c = 0;
String b=jTextField2.getText();
char[] a1 = null;
for(int i=0;i<=b.length();i++){
c=b.charAt(i);
a1[i]=letter[c];
}Exception in thread "AWT-EventQueue-0" java.lang.ArrayIndexOutOfBoundsException: 49
at javaapplication3.NewJFrame.jButton1ActionPerformed(NewJFrame.java:161)
int c = 0;
String b=jTextField2.getText();
char[] a1 = null;
for(int i=0;i<=b.length();i++){
c=b.charAt(i);
a1[i]=letter[c];
}Exception in thread "AWT-EventQueue-0" java.lang.ArrayIndexOutOfBoundsException: 49
at javaapplication3.NewJFrame.jButton1ActionPerformed(NewJFrame.java:161)
解决方案 »
- 求助求助,递归问题
- 最近在研究java中list的排序,觉得时间排序有点复杂。特贴出一个自己的例子,供大家参考批评~~~
- 大家在做J2EE项目中用到JAVA多线程的多吗?现在有一个月的空闲时间,想再学点东西,不知道是不是该学点多线程。谢谢!
- 如何解压ZIP数据块,BEST_SPEED方式压缩的。
- 高分求助:CertificateFactory中generateCertPath方法相关问题?急!急!急!急!急!急!急!
- catch 提示被另一catch块隐藏!
- 关于正则表达式
- JBuilder里面的一个设置,一定要用!
- 请教个小问题?
- JAVA SE
- java 位运算符
- uploadify 出现HTTP erro错误
修改为:char[] a1 = new char[26]; //长度根据你自己的需要设定
char[] a1 = new char[b.length()]你for循环也有错误。
i<=b.length();
改成 < ..
a1[i]=letter[c];这2行代码逻辑上就有错误。
比如说:
String b = "a";
那么你这样获取c的值会为:
c = 96;
那么letter[c]就会抛出数组越界异常了。
①、char[] a1 = null;
a1未初始化,没有分配内存空间,所以a1[i]=letter[c];就报错了。
应该改为char[] a1 = new char[b.length()];
②、b.charAt(i);返回的应该是char类型,你将char直接转为int的后果是得到的是ascii码值。比如
char c = '1';
int i = c;
此时i = 49,而不是1。
③、for(int i=0;i<=b.length();i++){循环条件有问题。因该是i<b.length();数组下标从0开始。
char[] letter = { 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j',
'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v',
'w', 'x', 'y', 'z' };
String b=jTextField2.getText();
int len = b.length();
char[] a1 = new char[len];
for (int i = 0; i < len; i++) {
char c = b.charAt(i);
int index = Integer.parseInt(Character.toString(c));
a1[i] = letter[index];
}