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

这种和答案哪个好些

String s = "aljlkdsflkjsadjfklhasdkjlflkajdflwoiudsafhaasdasd";

// 出现次数
int num = 0;
byte[] b=s.getBytes();
// 循环遍历每个字符,判断是否是字符 a ,如果是,累加次数
for ( int i=0;i<b.length;i++)
{
    // 获取每个字符,判断是否是字符a
    if (b[i]=='a' ) {
        // 累加统计次数
        num++;
    }
}
System.out.println("字符a出现的次数:" + num);


正在回答

2 回答

单纯的说只是遍历的话,答案好一些。

毕竟另外保存了一个数组的拷贝,用了额外的空间。

不过例题的样本太小了,运算出来连毫秒都没有,数据大了的话才会有差别。

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

慕姐4925769 提问者

s.charAt(i)=='a' 能详细讲解下这个吗 有点迷
2018-11-15 回复 有任何疑惑可以回复我~
#2

Loveless_World 回复 慕姐4925769 提问者

charAt就是character at (index),具体的意思就是说在i位置上的这个字符,所以当你调用这个函数的时候它返还的是指定位置的字符。 String的底层用的其实就是一个char的数组。
2018-11-17 回复 有任何疑惑可以回复我~
#3

Yeee

上面这样能比较吗? b[i] 输出出来是字节的数字,'a' 是一个字符,这两者内容不一样啊
2019-01-05 回复 有任何疑惑可以回复我~

变成字节数组不等于分割。建议看看例题

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

举报

0/150
提交
取消
Java入门第三季
  • 参与学习       409781    人
  • 解答问题       4340    个

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

进入课程

这种和答案哪个好些

我要回答 关注问题
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号