为什么我这显示是错的

来源:2-4 Java 中的 String 类常用方法 Ⅱ

weixin_慕村1544409

2020-07-19 00:24

public class HelloWorld {

    public static void main(String[] args) {

// 定义一个字符串

String s = "aljlkdsflkjsadjfklhasdkjlflkajdflwoiudsafhaasdasd";

        

        // 出现次数

int num = 0;

        

         // 循环遍历每个字符,判断是否是字符 a ,如果是,累加次数

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

{

            // 获取每个字符,判断是否是字符a

if (s.charAt(i)=='a') {

                // 累加统计次数

num++; 

}

}

System.out.println("字符a出现的次数:" + num);

}

}


写回答 关注

4回答

  • weixin_慕仙1176837
    2020-07-29 10:35:55

    把那个i<=s.length();去掉=号

  • 艺术家派大星
    2020-07-23 14:52:11
    //楼主的代码  
      
    public class HelloWorld {  
        public static void main(String[] args) {  
            // 定义一个字符串  
            String s = "aljlkdsflkjsadjfklhasdkjlflkajdflwoiudsafhaasdasd";  
              
            // 出现次数  
            int num = 0;  
              
             // 循环遍历每个字符,判断是否是字符 a ,如果是,累加次数  
            for (int i=0; i<=s.length(); i++   )  
            {  
                // 获取每个字符,判断是否是字符a  
                if (s.charAt(i) == 'a') {  
                    // 累加统计次数  
                    num++;   
                }  
            }  
            System.out.println("字符a出现的次数:" + num);  
        }  
    }  
      
    //运行结果  
    Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of range: 49  
        at java.lang.String.charAt(String.java:646)  
        at HelloWorld.main(HelloWorld.java:13)

    如二楼所说,也如报错所示,是字符串边界溢出,只需要去掉等号即可,即将for循环中的"i<=s.length()"改为"i<s.length()"就好。

    StringIndexOutOfBoundsException


  • weixin_慕姐2414052
    2020-07-21 10:54:25

    应该是i<s.length()

  • weixin_慕村1544409
    2020-07-19 00:24:46

    想不通


Java入门第三季

Java中你必须懂得常用技能,不容错过的精彩,快来加入吧

409792 学习 · 4340 问题

查看课程

相似问题