【Java】重生之String类再爱我一次---练习题(012)

目录

♦️练习一:用户登录

♦️练习二:遍历字符串

♦️练习三:统计字符次数数

♦️练习四:拼接字符串

♦️练习五:反转字符串

♦️练习六:金额转换

♦️练习七:手机号屏蔽


♦️练习一:用户登录

已知正确的用户名和密码,请用程序实现模拟用户登录

总共给三次机会,登录之后,给出相应的提示

🎏分析:

  • 要点一:正确的用户名和密码
  • 要点二:总共三次登陆机会
  • 要点三:给出相应的提示       
import java.util.Scanner;
public class Main {
    public static void main(String[] args) {
        //1.创建用户名和密码两个变量
        String rightUsername = "zhangsan";
        String rightPassword = "123456";
        //2.开辟空间,键盘录入输入的用户名和密码
        //注意:需登录三次,需用循环,又知道循环次数则用for循环
        for (int i = 0; i < 3; i++) {
            Scanner sc = new Scanner(System.in);
            System.out.println("请输入用户名");
            String Username = sc.nextLine();
            System.out.println("请输入密码");
            String Password = sc.nextLine();
            //3.判断登录是否成功
            if (rightUsername.equals(Username) && rightPassword.equals(Password)) {
                System.out.println("用户登陆成功");
                break;
            } else {
                System.out.println("用户名或密码输入错误,请重新登录");
            }

        }
    }
}

注意:在用户登录成功后需结束循环,加break,而登录错误不用



♦️练习二:遍历字符串

需求:键盘录入一个字符串,使用程序实现在控制台遍历该字符串

import java.util.Scanner;
public class Main {
    public static void main(String[] args) {
        // 创建Scanner对象以获取用户输入
        Scanner scanner = new Scanner(System.in);

        // 提示用户输入字符串
        System.out.print("请输入一个字符串:");
        String str= scanner.nextLine();

        // 遍历并打印字符串中的每个字符
        for (int i = 0; i < str.length(); i++) {
            char chs = str.charAt(i);
            System.out.println(chs);
        }
    }
}



♦️练习三:统计字符次数数

键盘录入一个字符串,统计该字符串中大写字母字符,小写字母字符,数字字符出现的次数

import java.util.Scanner;  

public class CharacterCount {  
    public static void main(String[] args) {  
        // 创建Scanner对象以获取用户输入  
        Scanner scanner = new Scanner(System.in);  
        
        // 提示用户输入字符串  
        System.out.print("请输入一个字符串:");  
        String inputString = scanner.nextLine();  
        
        // 初始化计数器  
        int uppercaseCount = 0;  
        int lowercaseCount = 0;  
        int digitCount = 0;  
        
        // 遍历字符串并统计字符类型  
        for (int i = 0; i < inputString.length(); i++) {  
            char c = inputString.charAt(i);  
            
            if (c>='A'&&c<='Z') 
            {  
                uppercaseCount++; // 大写字母  
            } else if (c>='a'&&c<='z') {  
                lowercaseCount++; // 小写字母  
            } else if (c>='0'&&c<='9')) {  
                digitCount++; // 数字  
            }  
        }  
        
        // 输出统计结果  
        System.out.println("大写字母出现次数: " + uppercaseCount);  
        System.out.println("小写字母出现次数: " + lowercaseCount);  
        System.out.println("数字出现次数: " + digitCount);  
        
        // 关闭Scanner  
        scanner.close();  
    }  
}

注:用ASCII码值来计算字符出现的次数



♦️练习四:拼接字符串

定义一个方法,把 int数组中的数据按照指定的格式拼接成一个字符串返调用该方法,并在控制台输出结果。例如:
数组为 int[] arr ={1,2,3};
执行方法后的输出结果为:[1,2,3]

🎏分析:

  • 要点一:定义一个方法并返回值
  • 要点二:注意结果的格式
import java.util.Scanner;
public class Main {
    public static void main(String[] args) {
        // 定义整数数组
        int[] arr = {1, 2, 3};

        // 调用拼接方法并打印结果
        String chs= arrToString(arr);
        System.out.println(chs);
    }

    // 方法:将int数组拼接成字符串
    public static String arrToString(int[] arr)
    {   //判断数组是否为空或数组长度是否为0
        if(arr.length==0||arr==null)
        {
           return " ";
        }
       String result="[";
        for (int i = 0; i < arr.length; i++)
        {
            // 如果不是最后一项,添加逗号
            if (i < arr.length - 1)
            {
                result=result+arr[i]+(","); // 使用中文逗号
            }
            else
            {
                result=result+arr[i];
            }
        }
        result=result+"]";
        return result;
    }
}



♦️练习五:反转字符串

定义一个方法,实现字符串反转。键盘录入一个字符串,调用该方法后,在控制台输出结果例如,键盘录入 abc,输出结果 cba

import java.util.Scanner;
public class Main {
    public static void main(String[] args) {
        String str = "abc";
        String chs=reverse(str);
        System.out.println(chs);
    }
        public static String reverse(String str)
        {
            String result="";
            for (int i = str.length()-1; i>=0; i--)
            {
                char c=str.charAt(i);//将字符串某索引的值赋值于c
                result=result+c;
            }
            return result;
        }
    }



♦️练习六:金额转换

🎏分析:

  • 步骤一:定义一个方法可将数字转换为大写
  • 步骤二:得到大写数组后在前面补0,补够7位
  • 步骤三:插入单位
import java.util.Scanner;
public class Main {
    public static void main(String[] args) {
       //1.键盘录入一个金额
        Scanner sc=new Scanner(System.in);
        System.out.println("请输入一个金额");
        int money;

        //判断输入的金额是否合理
        //金额合理
        while(true) {
            money=sc.nextInt();
            if (money >= 0 && money <= 9999999) {
                break;//在循环中才能运用break
            }
            //金额不合理
            else {
                System.out.println("金额无效");
            }
        }
        //定义一个变量表示前的大写
        String moneyStr="";

        //2.得到money里面的每一个数字
        while(true)
        {
            //从右往左获取数据,因为右侧时数据的各位
            int ge=money%10;
            String capitalNumber=getCapitalNumber(ge);
            //将得到的大写数字拼接起来
            moneyStr=capitalNumber+moneyStr;//将MoneyStr和capitalNumber调换位置,防止打印出来是倒着的
            money/=10;//将money移位,则下一次money%10得到的就是数据的十位
            if(money==0)
            {
                break;
            }
        }
        System.out.println(moneyStr);

        //3.在前面补零,补够7位
        int count=7-moneyStr.length();
        for (int i = 0; i < count; i++)
        {
         moneyStr="零"+moneyStr;
        }
        System.out.println(moneyStr);

        //4.插入单位
        //定义一个数组表示单位
        String[] arr={"佰","拾","万","仟","佰","拾","元"};
        //遍历数组moneyStr,依次得到数组中元素
        //然后将单位插入进去
        for (int i = 0; i < moneyStr.length(); i++)
        {
          char c=moneyStr.charAt(i);
            System.out.print(c);//注意此处打印不需要换行
            System.out.print(arr[i]);
        }
    }
    //定义一个方法,将数字变为大写
    public static String getCapitalNumber (int number)
    {
        //定义数组,让数字跟大写中文产生一个对应关系
        String[] arr={"零","壹","贰","叁","肆","伍","陆","柒","捌","玖"};
        //返回结果
        return arr[number];
    }
}



♦️练习七:手机号屏蔽

🎏方法:

  • String substring(int beginIndex,int endIndex)
  • 注意点:包头不包尾,包左不包右
  • String substring(intbedinIndex)   截取到末尾
import java.util.Scanner;
public class Main {
    public static void main(String[] args) {
        //1.获取一个手机号
      String number="18100000000";
        //2.录取手机号前面几位
        String start=number.substring(0,3);
        //3.录取手机号后面几位
        String end=number.substring(7);
        //4.拼接
        String result=start+"****"+end;
        System.out.println(result);
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值