本帖最后由 寐海流风 于 2014-6-21 15:02 编辑
题目:编写程序,从键盘接收一个字符串,对字符串中的字母进行大小写互转(大写字母转成小写,小写字母转成大写)
public class lowerAndUpper{
public static void main(String[] args){
System.out.print("请输入一个带英文字母大小写的字符串:");
//用字符串接收控制台输入的一行字符串
String str = new Scanner(System.in).nextLine();
//由于StringBuilder的底层是自动扩容数组,和其高效性,用其接收转换后的每个字符串
StringBuilder sb = new StringBuilder();
//通过for循环遍历字符串的每个字符,并操作
for(int x=0;x<str.length();x++){
//用一个字符变量c接收遍历获取的字符,方便下面操作
char c = str.charAt(x);
//用一个int变量接收字符对应ASCII码表中的对应八进制数值
int dec = c;
//利用A-Z对应的八进制Dec值为65-90,a-z对应的八进制Dec值为97-122,
//来讲本是小写的字符转为大写,本是大写的字符转为小写,若是其他字符则不管;
//并且在使用toLowerCase和toUpperCase方法前,先用字符+""来将字符转为字符串;
//最后用StringBuilder来每次接收大小写转换后的字符串;
if(dec>64 && dec<91)
sb.append((c+"").toLowerCase());
else{
if(dec>97 && dec<122)
sb.append((c+"").toUpperCase());
else
sb.append(c);
}
}
//打印大小写互转后的字符串
System.out.println("您输入字符串通过大小写互换后表示为:"+sb.toString());
}
}
总感觉自己的方法有点不太满意,还有更好的方法么?互相学习下。 |