大写转为小写可以,但是小写转为大写怎么不行呢?
public class Change_ {
public String change(String a) {
char[] temp = a.toCharArray();
for(int i=0;i<a.length();i++) {
if(temp[i]>=97 && temp[i]<=122) {
temp[i] =(char)(temp[i]-32);
}
if(temp[i]>=65 && temp[i]<=90) {
temp[i]=(char)(temp[i]+32);
}
if(temp[i]==32) {
temp[i] = (char)(temp[i]+3);
}
}
return String.valueOf(temp);
}
}
public class Test {
public static void main(String[] args) {
Change_ cha = new Change_();
System.out.println(cha.change("Let us study Java"));
}
}
输出为:
要把下面的2个if改为else if,比如97-32=65,刚好符合下面的条件,结果又转回去了。修改后的代码如下:
public class 大小写转换 {
public static void main(String[] args) {
System.out.println(change("Let us study Java"));
}
public static String change(String a) {
char[] temp = a.toCharArray();
for(int i=0;i<a.length();i++) {
if(temp[i]>=97 && temp[i]<=122) {
temp[i] =(char)(temp[i]-32);
}else if(temp[i]>=65 && temp[i]<=90) {
temp[i]=(char)(temp[i]+32);
}else if(temp[i]==32) {
temp[i] = (char)(temp[i]+3);
}
}
return String.valueOf(temp);
}
}
同学你这个方法太麻烦了,其实一行代码就可以完成一个需求,这是String独有的方法,试试看吧,如果有用记得点击采纳哦~
//定义一个String a="aBcDe"
String b=a.toUpperCase();//小写字母转大写 b=ABCDE
String c=a.toLowerCase();//大写字母转小写 c=abcde
问题出在循环里面的if,可能会进去两个if里面,也就是减完了,到后面又加回去了。
您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~
如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~
ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632