黑马程序员技术交流社区
标题:
关于字符串中字母大小写转换的一道题
[打印本页]
作者:
人在旅途~东营
时间:
2015-5-25 23:54
标题:
关于字符串中字母大小写转换的一道题
基础测试的时候有这么一道题:编写程序,从键盘接收一个字符串,对字符串中的字母进行大小写互转(大写字母转成小写,小写字母转成大写)。这道题的常规做法我做出来了,代码实现如下:
/* 分析:1.首先 创建键盘录入对象
* 2.定义一个变量接收键盘录入的字符串 ,例如: "AjweAJaj"
* 3.要想对字符串字母进行大小写互转,首先得遍历字符串,获取到每个字符,并存放到一个数组中
* 4.要想实现判断字母大小写问题,就要考虑到后续的字符串是个新的字符串,因此可以创建一个字符串缓冲区,用来实现字符串的拼接
* 5.遍历数组并进行大小写判断
* 6.将得到的新字符添加到字符串缓冲区,完成新字符串的拼接
* */
public class Test5 {
public static void main(String[] args) {
// 键盘录入一个字符串
Scanner sc = new Scanner(System.in);
// 请输入数据
System.out.println("请您输入数据:");
String line = sc.nextLine();
// 把字符串转换成字符数组
char[] chs = line.toCharArray();
// 创建字符串缓冲区,用于存储新的字符串
StringBuilder sb = new StringBuilder();
// 遍历数组,获取每一个元素
for (int i = 0; i < chs.length; i++) {
// 判断,由于大写字母A--Z在转换成小写a--z只需要在原来基础上+32,即可完成转换因此可以通过chs[i] += 32来实现
if (chs[i] >= 'A' && chs[i] <= 'Z') {
chs[i] += 32;
sb.append(chs[i]);
// 同理,实现小写到大写的转换:
} else if (chs[i] >= 'a' && chs[i] <= 'z') {
chs[i] -= 32;
sb.append(chs[i]);
// 如果字符串中有其他字符,则不需要进行转换,直接添加到新数组中即可
} else {
sb.append(chs[i]);
}
}
// 输出新的字符串
System.out.println(sb);
}
}
复制代码
后来我想到一个问题:如果直接把字符串作为元素存储到集合中,然后利用集合的方法实现该需求的话应该怎么做?私下做了几次代码实现都不满意,因此想请教下大家该题的集合实现.谢谢!
作者:
!85684009ex
时间:
2015-5-26 00:11
膜拜大神把!!!
作者:
进击的蜗牛
时间:
2015-5-26 00:16
占个位置学习一下
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2