public static void main(String[] args) {
// 定义一个字符串
String s = "aljlkdsflkjsadjfklhasdkjlflkajdflwoiudsafhaasdasd";
// 出现次数
int num = 0;
int i=0;
char st=s.charAt(i);
// 循环遍历每个字符,判断是否是字符 a ,如果是,累加次数
for (i=0;i<s.length();i++)
{
// 获取每个字符,判断是否是字符a
if (st=='a') {
// 累加统计次数
num++;
}
}
System.out.println("字符a出现的次数:" + num);
}
因为 int i=0; 所以 s.charAt(i); 就是 s.charAt(0) 。
因为s的下标为0的就是a。所以 char st=s.charAt(i); 就等于a了。
st的赋值在循环外,也就是循环内st的值一直没变,每一次判断都是st等于a
为啥放循环外边,还自己定义一个i变量
char st=s.charAt(i); 这句话要放进循环里面啊
你这样第一个是 a 的话 char st=s.charAt(0); st就一直是 a 了 所以才会输出49吧
我也是个小白,不知道行不行,你试试
String s = "aljlkdsflkjsadjfklhasdkjlflkajdflwoiudsafhaasdasd"; int num=0; for (int i = 0; i < s.length(); i++){ // 获取每个字符,判断是否是字符a char st=s.charAt(i); if (st=='a') { // 累加统计次数 num++; } } System.out.println(num);
String s = "aljlkdsflkjsadjfklhasdkjlflkajdflwoiudsafhaasdasd"; int num=0; for (int i = 0; i < s.length(); i++) { // 获取每个字符,判断是否是字符a char st=s.charAt(i); if (st=='a') { // 累加统计次数 num++; } } System.out.println(num);