注册 登录
编程论坛 JAVA论坛

关于数组越界问题

lousang 发布于 2018-03-29 19:42, 2152 次点击
程序代码:
package countletter;

import java.util.Scanner;

public class Countletter {
    public static void main(String args[]) {
        Scanner in = new Scanner(System.in);
        String str = in.nextLine();
        str=str.toLowerCase();
        int[] a = new int[26];
        for(int i = 0;i < str.length();i++) {
            char c = str.charAt(i);
            int index = c - 'a';
            a[index] = a[index] + 1;
        }
        for(int i = 0;i < a.length;i++) {
            if(a[i]!=0) {
                System.out.println("("+(char)(i+'A')+")"+"Num="+a[i]);
            }
        }
    }
}
4 回复
#2
lousang2018-03-29 19:43
只有本站会员才能查看附件,请 登录


错误提示
#3
疯狂的小a2018-03-29 20:10
回复 2楼 lousang
index大于25就越界了呗
#4
桃花岛主丶2018-03-29 22:40
int[] a = new int[str.length()];问题在于你怎么保证你输入的字符串的长度数组能装的下
#5
郭俊森12342018-03-30 19:12
程序如果输入的是26个字母的时候没有问题,但是如果有符号或者数字之类的index就不是在0-25之间就会出现越界。这个时候我们需要对输入进行判断是否都是字母
1