求解答案,最好配有源码?

将一个字符串中的大写字母变成小写字母,小写字母变成大写字母,其余不变?
package code4;
import java.util.Scanner;
public class str {
     public static String StringChange(String s){
     	StringBuilder a=new StringBuilder();	
     	int len=s.length();	
     	char c;	
     	for(int i=0;i<len;i++)	{    
     	   c=s.charAt(i);		
     	   if(c>='a' && c<='z')		
     	   {c=(char)(c-32);}		
     	      else if(c>='A' && c<='Z')		
     	           {c=(char)(c+32);}		
     	  a.append(c);	
     	  }	
     	return a.toString();
     		} 	
public static void main(String[] args) {	
	// TODO Auto-generated method stub		
	System.out.println("请要转换的英文字符串:");		
	Scanner input=new Scanner(System.in);		
	String s=input.next();		
	System.out.println("你输入内容是:"+s);		
	System.out.println("转换后字符串为");		
	System.out.println(StringChange(s));	
	}}

 

public static void main(String[] args) {
		String str="abcACDEDab";
			StringBuffer sb = new StringBuffer();
			if(str!=null){
				for(int i=0;i<str.length();i++){
					char c = str.charAt(i);
					if(Character.isUpperCase(c)){
						sb.append(Character.toLowerCase(c));
					}else if(Character.isLowerCase(c)){
						sb.append(Character.toUpperCase(c)); 
					}
				}
			}
			
		System.out.println(sb.toString());

	}

 

public static void main(String[] args) {
		String str="abcACD112ED??????ab";
		StringBuffer sb = new StringBuffer();
		if(str!=null){
			int len=str.length();
			for(int i=0;i<len;i++){
				char c = str.charAt(i);
				//如果是大写字母,转成小写
				if(Character.isUpperCase(c)){
					sb.append(Character.toLowerCase(c));
				}else if(Character.isLowerCase(c)){ //如果是小写字母,转大写
					sb.append(Character.toUpperCase(c)); 
				}else{ //其余不变
					sb.append(c);
				}
			}
		}
		System.out.println(sb.toString());
	}

刚刚没有看到其余不变,以上代码就可以了,万望采纳。

您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~

如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~

ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632