问题解析
这道题有两个难点:
- 如何得到字符串中的各个字符以便进行大小写转换操作。
- 如何进行大小写转换
第一个问题的的解决方法是 charAt ,它可以取出字符串中想要位置的字符。使用方法就是:
char x = str.charAt (i);
// 在 i 中填写想要字符串中字符的位置
第二个问题需要借鉴 ascii 码表。在 ascii 码中,小写字母比大写字母的二进制数多 32 (比如 A 为 65 , a 为 97)。因此只要让大写字符 + 32 后再强行转换成字符就可以得到小写字符了。
解题思路
在ToLowerCase函数中,传入输入的字符串 str , 再创建一个 str2 用于储存已经大小写转换完毕的字符。
接下来用 for 循环从 str 里读取每一位字符,判断每一位字符的二进制数是否 大于 A 且 小于 B,若结果为真,说明是大写字符,需要把这一位字符 + 32 后再用 (char) 强行转换并赋值给 str2 ,若结果为假,则直接把这一位字符赋值给 str2。
循环结束后,return str2,这就是已经大小写转换完毕的字符串。
实现代码
public static void main(String[] args) {
String str = "StuDent";
String str2 = ToLowerCase (str);
System.out.println(str2);
}
public static String ToLowerCase(String str) {
String str2 = "";
for (int i = 0; i < str.length(); i++) {
if (str.charAt(i) >= 'A' && str.charAt(i) <= 'Z') {
str2 += (char) (str.charAt(i) + 32);
}
else {
str2 += str.charAt(i);
}
}
return str2;
}