java: 大写字母转小写,小写转大写,空格转#

大写转为小写可以,但是小写转为大写怎么不行呢?

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