我用的这种方法为什么输出a出现的次数为49,有大神可以帮忙看一下吗?

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

阿拉斯君

2018-10-08 09:11

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

}


写回答 关注

6回答

  • 糊虎
    2018-11-08 15:30:14

    因为  int i=0;  所以 s.charAt(i); 就是  s.charAt(0)   。

    因为s的下标为0的就是a。所以 char st=s.charAt(i); 就等于a了。



  • 慕雪3915992
    2018-10-18 22:52:46

    st的赋值在循环外,也就是循环内st的值一直没变,每一次判断都是st等于a

  • 淅沥沥下雨
    2018-10-15 15:17:26

    为啥放循环外边,还自己定义一个i变量

  • supbad
    2018-10-08 16:00:47

     char st=s.charAt(i);    这句话要放进循环里面啊

    你这样第一个是 a  的话     char st=s.charAt(0);      st就一直是 a 了    所以才会输出49吧

    阿拉斯君

    st定义在外面就是全局变量值不变了对吗?

    2019-01-29 14:23:26

    共 1 条回复 >

  • 这是一个笨鸟
    2018-10-08 09:38:21

    我也是个小白,不知道行不行,你试试

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


  • 这是一个笨鸟
    2018-10-08 09:36:07
    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);


Java入门第三季

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

409792 学习 · 4340 问题

查看课程

相似问题