原理
ASCII码运算
先来看实例代码:
1 2 3 4
| System.out.println("a-z:"+(int)'a'+"-"+(int)'z'); System.out.println("A-Z:"+(int)'A'+"-"+(int)'Z'); System.out.println("0-9:"+(int)'0'+"-"+(int)'9'); System.out.println("a减去A="+(int)('a'-'A'));
|
运行结果:
1 2 3 4
| a-z:97-122 A-Z:65-90 0-9:48-57 a减去A=32
|
结论
- 小写字母
a到z
的ASCII
码范围为:97到122
。
- 大写字母
A到Z
的ASCII
码范围为:65到90
,
- 小写字母减去
32
就得到大写字母,同样的大写字母加上32
就得到了小写字母.
代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51
| package first.letter; public class LowerUpperCaseFirstLetter { public static void main(String[] args) { System.out.println("首字母变小写:" + lowerCaseFirstLetter("Java")); System.out.println("首字母变大写:" + upperCaseFirstLetter("java"));
}
public static String upperCaseFirstLetter(String str) { char[] chars = str.toCharArray(); if ('a' <= chars[0] && chars[0] <= 'z') { System.out.println(chars[0] + ":" + (int) (chars[0])); chars[0] = (char) (chars[0] - 32); } return String.valueOf(chars); }
public static String lowerCaseFirstLetter(String str) { char[] chars = str.toCharArray(); if ('A' <= chars[0] && chars[0] <= 'Z') { System.out.println(chars[0] + ":" + (int) (chars[0])); chars[0] += 32; } return String.valueOf(chars); } }
|
运行结果:
1 2 3 4
| J:74 首字母变小写:java j:106 首字母变大写:Java
|