关于getBytes()方法:
public class HelloWorld { public static void main(String[] args) { // 定义一个字符串 String s = "aljlkdsflkjsadjfklhasdkjlflkajdflwoiudsafhaasdasd"; // 出现次数 int num = 0; byte b[] = s.getBytes(); // 循环遍历每个字符,判断是否是字符 a ,如果是,累加次数 for (int i = 0; i < s.length(); i++) { // 获取每个字符,判断是否是字符a if (b[i] == (int) 'a') { // 累加统计次数 num++; } } System.out.println("字符a出现的次数:" + num); } }
最后几行的if (b[i] == 'a')和if (b[i] == (int)'a')为什么都可以执行成功呢?所以这里的a究竟是什么类型,byte类型也是int的一种么?
转成int也是一个字符吧 在阿斯克码表里都是同一个值 这里应该是强转成int后又自动转成byte的?
两种情况 是 基本数据类型的自动转化吧?