为了账号安全,请及时绑定邮箱和手机立即绑定

哪里错了这是



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



正在回答

7 回答

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


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

}

}


1 回复 有任何疑惑可以回复我~

楼上大佬,受教了

0 回复 有任何疑惑可以回复我~

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

1 回复 有任何疑惑可以回复我~

楼主你这其实离成功不远了,只要到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);
    }
}

0 回复 有任何疑惑可以回复我~

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

}

}

你应该这样。

0 回复 有任何疑惑可以回复我~
#1

慕后端1338084 提问者

我试试,谢谢你
2018-08-24 回复 有任何疑惑可以回复我~
#2

白菜尖尖

你这样虽说输出结果是对的,但不严谨!你定义的S是字符串数组而不是字符数组,应该定义为char s={'a',...}。更简单的是我记得字符串有个转换成字符数组的方法,可以查查。
2018-08-24 回复 有任何疑惑可以回复我~

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

0 回复 有任何疑惑可以回复我~
#1

慕后端1338084 提问者

谢谢你!
2018-08-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);
 }
}

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

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

哪里错了这是

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信