问答详情
源自:2-4 Java 中的 String 类常用方法 Ⅱ

关于getBytes()方法:

关于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的一种么?

提问者:pkcorn 2017-12-08 21:38

个回答

  • 如果我是DJ我是DJ我是DJ我是DJ
    2018-05-18 17:48:48
    已采纳

    转成int也是一个字符吧    在阿斯克码表里都是同一个值 这里应该是强转成int后又自动转成byte的?

  • feverrun
    2017-12-08 23:00:07

    两种情况 是 基本数据类型的自动转化吧?