问答详情
源自:2-4 Java 中的 String 类常用方法 Ⅱ

哪里错了这是



public class HelloWorld {
    public static void main(String[] args) {
        // 定义一个字符串
        String s = "aljlkdsflkjsadjfklhasdkjlflkajdflwoiudsafhaasdasd";
        
        // 出现次数
        int num = 0;
        
         // 循环遍历每个字符,判断是否是字符 a ,如果是,累加次数
        for (  char i : s  )
        {
            // 获取每个字符,判断是否是字符a
            if (  i=='a'   ) {
                // 累加统计次数
                num++;
            }
        }
        System.out.println("字符a出现的次数:" + num);
    }
}



提问者:慕后端1338084 2018-08-22 21:23

个回答

  • 慕数据4260663
    2018-11-19 00:41:19

    **这个问题的关键是要将字符串转换为字符数组**


    public class HelloWorld {

        public static void main(String[] args) {

    // 定义一个字符串

    String s = "aljlkdsflkjsadjfklhasdkjlflkajdflwoiudsafhaasdasd";

    //字符串转换为字符数组,使用toCharArray()方法

            char[] ch=s.toCharArray();

            // 出现次数

    int num = 0;

            

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

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

    {

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

    if (  ch[i]=='a'  ) {

                    // 累加统计次数

    num++; 

    }

    }

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

    }

    }


  • 淅沥沥下雨
    2018-10-15 15:21:37

    楼上大佬,受教了

  • Zero_mingyao
    2018-09-09 08:41:02

    for (  char i : s  ) 换成for(  char i : s.toCharArray() )

  • qq_泡沫_37
    2018-09-01 11:27:06

    楼主你这其实离成功不远了,只要到s的后面加上toCharArray()方法就行,原因上面都有提到就是,增强for循环遍历的是数组,你前面的定义的类型变量要与:后面的数组类型相匹配,所以只要把后面的字符串转换为和前面char型变量i相匹配的char型数组就ok

    public class HelloWorld {
        public static void main(String[] args) {
            // 定义一个字符串
            String s = "aljlkdsflkjsadjfklhasdkjlflkajdflwoiudsafhaasdasd";
            
            // 出现次数
            int num = 0;
            
             // 循环遍历每个字符,判断是否是字符 a ,如果是,累加次数
            for (  char i : s .toCharArray() )
            {
                // 获取每个字符,判断是否是字符a
                if (  i=='a'   ) {
                    // 累加统计次数
                    num++; 
                }
            }
            System.out.println("字符a出现的次数:" + num);
        }
    }

  • qq_查理布朗_03899434
    2018-08-24 14:24:27

    public class HelloWorld {


    public static void main(String[] args) {

    // 定义一个字符串

    String[] s = { "a", "l", "j", "l", "k", "d", "s", "f", "l", "k", "j",

    "s", "a", "d" };


    // 出现次数

    int num = 0;


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

    for (String i : s) {

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

    if (i.equals("a")) {

    // 累加统计次数

    num++;

    }

    }

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

    }

    }

    你应该这样。

  • 白菜尖尖
    2018-08-23 10:21:58

    for (  char i : s  ),循环遍历是针对数组的,这条语句中s是字符串而不是数组,如果这样做的话需要将字符串s转换成字符数组!

  • qq_一夕暮光_0
    2018-08-22 21:30:56

    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);
     }
    }

    你看下要循环遍历每个字母,然后用当前的去跟a比较,