java:大小写转换
题目
问题描述
编写一个程序,输入一个字符串(长度不超过20),然后把这个字符串内的每一个字符进行大小写变换,即将大写字母变成小写,小写字母变成大写,然后把这个新的字符串输出。
输入格式:输入一个字符串,而且这个字符串当中只包含英文字母,不包含其他类型的字符,也没有空格。
输出格式:输出经过转换后的字符串。
输入输出样例
样例输入
AeDb
样例输出
aEdB
import java.util.Scanner;
public class 大小写转换1 {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sc=new Scanner(System.in);
String s=sc.nextLine();
char [] a=s.toCharArray();//把字符序列存放在数组里面
for(int i=0;i<a.length;i++){
if(a[i]>='A'&& a[i]<='Z'){
a[i]=(char)(a[i]+32);
}
else if(a[i]>='a'&& a[i]<='z'){
a[i]=(char)(a[i]-32);
}
}
for(int i=0;i<a.length;i++)
System.out.print(a[i]);
}
}
为什么这个不加else就不对呢?
我还还有一个想法是用正则表达式进行运算,但是后来我想了一下,正则表达式不能同时进行替换,如果先替换大写转换为小写,那后面的小写转换为大写根本不能出现。