一道考试题:打印字母表
上次期末考试,倒数第二大题的第N小题……打印26个大小写字母表
是一道很简单的小题目,但还是揪出来研究研究(人家牛气哄哄的Thinking in java 都写了这示例,我重写不丢人!!!)
上主题:
public class Demo { public static void main(String[] args) { /*char和int类型能够相互转换,相信大家都明白 什么?不明白???那只能怪你大一c语言老师死的早 */ //为什么是0~128的取值范围?其实这只是个大概范围,具体看看编码表就一目了然了 for (char c = 0; c < 128; c++) { //java里边包装类的一个静态方法,确定c是字母还是小写!!!) if (Character.isLowerCase(c)) { //我没用println,why?你可以试试println()看对齐效果 System.out.printf("value: %3d char: %c\n", (int)c, c); //同上,判断c是大写 } else if (Character.isUpperCase(c)) { System.out.printf("value: %3d char: %c\n", (int)c, c); } } } }
- -# 好吧,分辨率不高,就只能截这么多了,反正大小写都出来了,下边的内容留给新手们自己想象……
后话:
我觉得,一个人能把简单的事情看得复杂,然后再回归简单,那么这个人一定很了不起。
简单说,短短几行代码用到的技巧无非就是char和int类型的相互转换
但是,你有没有想过char取值范围的问题呢?
编码表的设计和其他十进制所代表的字符呢?
还有包装类是个什么情况,为神马用它的方法能够很快区分大小写?
假如想确定任意一个数是否能转化为char类型的字母怎么做?
再接着,System.out.println()和System.out.printf()有何不同?
欲知详情,请自我分析……