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

这种和答案哪个好些

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
提交
取消

这种和答案哪个好些

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