可爱的小棋
2017-05-05 02:41
采纳率: 80%
浏览 1.2k
已采纳

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

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

  • 写回答
  • 好问题 提建议
  • 关注问题
  • 收藏
  • 邀请回答

8条回答 默认 最新

  • 夕阳雨晴 2017-05-05 04:59
    已采纳
     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());
      }
    
    }
    
    已采纳该答案
    评论
    解决 无用
    打赏 举报
  • MathRandom 2017-05-05 02:53

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

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

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

    评论
    解决 无用
    打赏 举报
  • 可爱的小棋 2017-05-05 03:04

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

    评论
    解决 无用
    打赏 举报
  • 可爱的小棋 2017-05-05 03:05

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

    评论
    解决 无用
    打赏 举报
  • ljheee 2017-05-05 03:08

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

    评论
    解决 无用
    打赏 举报
  • 赎回光阴 2017-05-05 03:16

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

    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;
    }
    
    评论
    解决 无用
    打赏 举报
  • qq_36336328 2017-05-05 03:56

    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);  
    
    }
    

    }

    评论
    解决 无用
    打赏 举报
  • 凤凰心羽 2017-05-05 07:14

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

     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);
            }
    
    评论
    解决 无用
    打赏 举报

相关推荐 更多相似问题