这个java的小程序怎么写啊?

键盘录入一个字符串,将字符串中的大写改成小写,小写改成大写,数字改成*。例如heLLO123,输出后为HEllo***

 import java.util.Scanner;

/**
 *
 * @author sunzc 转换字符串,大写变小写,小写变大写,数字不变,其他变为*
 */
public class Transfer {
  public static void main(String[] args) {
    // String str = "ABC123abcfadfjbJBHJHJDsa";
    String str = "";
    Scanner s = new Scanner(System.in);
    System.out.println("请输入您想输入的字符串:");
    str = s.next();
    StringBuffer sb = new StringBuffer();
    int i;
    // char ch;
    for (i = 0; i <= str.length() - 1; i++) {// 遍历字符串
      char ch;

      // 通过str.charAt(i)遍历出字符串中每个字符
      if (str.charAt(i) >= 'a' && str.charAt(i) <= 'z') {// 判断字符是否在a-z之间(小写)
        ch = (char) (str.charAt(i) - 32); // 如果为小写则转换为相应大写,赋值给ch
      } else if (str.charAt(i) >= 'A' && str.charAt(i) <= 'Z') {// 判断字符是否在A-Z之间(大写)
        ch = (char) (str.charAt(i) + 32); // 如果为大写则转换为相应小写,赋值给ch
      } else if (str.charAt(i) >= '0' && str.charAt(i) <= '9') {// 判断字符是否在0-9之间(数字)
        ch = '*'; // 如果为数字,则转为*号
      } else {
        ch = str.charAt(i); // 将原字符赋值给ch
      }
      sb.append(ch); // 将字符追加到sb序列
    }
    String trStr = sb.toString(); // 将StringBuffer转换为String类型
    System.out.println(sb.toString());
  }

}

改的话你只有在后台改撒
toLowerCase();//转成小写
.toUpperCase();//转成大写

例:
String str = "aaaaaBBcccc";
String Upstr = str.toUpperCase();
String Lowstr = str.toLowerCase();

Upstr 的值是 "AAAAABBCCCC"
Lowstr 的值是 "aaaaabbcccc"

现在如果是纯字母大小写很好办,我现在不要求键盘录入了,要求给你一个字符串,"AAbb12345",要求输出aaBB*****

问题在于,这些数字怎么办,我头疼的问题在这

"AAbb12345",要求输出aaBB*****
这个没有什么特殊方式,String转成char【】,遍历里面每一个字符,判断再转化

你自己 去研究 方法很多 , 我给你其中一种

public static String exChange(String str){
String flag = "";
String regEx = "\d";
System.out.println(Pattern.compile(regEx).matcher("12www3").find());

    for(int i=0;i<str.length();i++){
        //数字转换 *
        if (Pattern.compile(regEx).matcher(str.substring(i, i + 1)).find()) {
            flag += "*";
        }else if(str.substring(i, i+1).equals(str.substring(i, i+1).toLowerCase())){
            flag += str.substring(i, i+1).toUpperCase();// 小写转换 大写
        } else if (str.substring(i, i + 1).equals(str.substring(i, i + 1).toUpperCase())) {
            flag += str.substring(i, i + 1).toLowerCase();// 大写转换 小写
        } 
    }
    return flag;
}

import java.util.Scanner;
public class hello {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);

System.out.println("请输入一个字符串:");
String str = scan.next();
str=str.replaceAll("[0-9]","*");

char[] ch=str.toCharArray();
for(int i=0;i if((int)ch[i]>=65&&(int)ch[i]<=90){
ch[i]+=32;
}else if((int)ch[i]>=91&&(int)ch[i]<=122){
ch[i]-=32;
}else{
ch[i]+=0;
}
}

    str=new String(ch);
    System.out.println("您输入的字符串是:" + str);  

}

}

新手学习,一个笨方法,不知道是不是这样。

 public static void main(String[] args) {
        String st = new String();
        String b,c;
        c="";
        Scanner sc= new Scanner(System.in);
        System.out.println("请输入一个字符串");
        st=sc.next();
        if(!st.isEmpty()){
            for(int i=0;i<st.length();i++){
                Character cha = st.charAt(i);
                if(Character.isUpperCase(cha)){
                    b=Character.toString(Character.toLowerCase(cha)) ;
                }
                else if(Character.isDigit(cha)){
                    b="*";
                }else{
                b=Character.toString(Character.toUpperCase(cha));
                }
                c=c+b;
            }
            System.out.println(c);
        }