2

我在编译这个 java 文件时遇到问题。我无法理解那个问题是什么。日食 说

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 10
at ll.ln.main(ln.java:11)" 

这是目录:

这是代码:

package ll;
public class ln {
    public static void main(String arguments[]) {
        String[] pharse={"here i am ","ther you are",
                                 "nobody movewho is in charge here",
                                 "haven dosent far away"};
        for (int count=0;count<=pharse.length;count ++){
            String courenttext=pharse[count];
            char[] chcs=courenttext.toCharArray();
            int[] ln=new int[26];
            for(int i=0;i<=chcs.length;i++){
                if((chcs[i]>'z')||(chcs[i]<'a'))
                 continue;
                ln[chcs[i]-'a'] ++;
            }
            for (int i=0;i<27;i++){
                char t='a';
                t+=i;
                System.out.println(t +": "+ln[i]+"   ");
                }
        }
    }
}
4

4 回答 4

2

在每一行中替换<=<

for (int count=0;count<=pharse.length;count ++){

应该:

for (int count=0;count<pharse.length;count ++){

在这一行还有:

for(int i=0;i<=chcs.length;i++){

应该 :

for(int i=0;i<chcs.length;i++){
于 2012-10-19T09:49:29.393 回答
1

使用<代替<=

for (int i = 0; i < chcs.length; i++) 

完整代码

        String[] pharse = { "here i am ", "ther you are", "nobody movewho is in charge here",
                "haven dosent far away" };
        for (int count = 0; count < pharse.length; count++) {
            String courenttext = pharse[count];
            char[] chcs = courenttext.toCharArray();
            int[] ln = new int[26];
            for (int i = 0; i < chcs.length; i++) {
                if ((chcs[i] > 'z') || (chcs[i] < 'a'))
                    continue;
                ln[chcs[i] - 'a']++;
            }

            for (int i = 0; i < 26; i++) {
                char t = 'a';
                t += i;
                System.out.println(t + ": " + ln[i] + "   ");

            }

        }
于 2012-10-19T09:50:08.060 回答
1

改变

for(int i=0;i<=chcs.length;i++)

for(int i=0;i<chcs.length;i++)

您的索引超出长度

于 2012-10-19T09:51:42.220 回答
0

更改 3 行:

  1. for (int count=0;count<=pharse.length;count ++){

    for (int count=0;count<pharse.length;count ++){

  2. for(int i=0;i<=chcs.length;i++){

    for(int i=0;i<chcs.length;i++){

  3. for (int i=0;i<27;i++){

    for (int i=0;i<26;i++){

于 2012-10-19T10:17:49.490 回答