【Java零基础视频教程】综合练习题(三)——字符串

字符串

用户登录案例

已知用户名和密码,请用程序实现模拟用户登录。总共给三次机会,登录之后,给出相应的提示

先设置正确的用户名密码,然后3次for循环给用户输入

package com.itheima;

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        String rightUserName = "admin";
        String rightPassword = "123456";

        //键盘录入
        Scanner sc = new Scanner(System.in);

        //3次机会
        for (int i = 0; i < 3; i++) {
            System.out.println("请输入用户名:");
            String userName = sc.next();
            System.out.println("请输入密码:");
            String password = sc.next();
            if (rightUserName.equals(userName) && rightPassword.equals(password)) {
                System.out.println("登录成功!");
                break;
            } else {
                if(i==2){
                    System.out.println("账户" + userName + "被锁定,请联系黑马程序员官方小姐姐:XXXXXXX");
                }
                System.out.println("用户名或密码错误,登录失败,还剩下" + (2 - i) + "次机会");
            }

        }

    }
}

遍历字符串

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

录入一个字符串后,用charAt来获取字符串中每一个字符

package com.itheima;

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        //1.键盘录入一个字符串
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入字符串");
        String str = sc.next();
        System.out.println(str);

        //2.遍历
        for (int i = 0; i < str.length(); i++) {
            //i 依次表示字符串的每一个索引
            //索引的范围:0 ~  长度-1

            //根据索引获取字符串里面的每一个字符
            //ctrl + alt + V 自动生成左边的接受变量
            char c = str.charAt(i);
            System.out.println(c);
        }

    }
}

统计字符次数

键盘录入一个字符串,统计该字符串中大写字母字符,小写字母字符,数字字符出现的次数(不考虑其他字符)

思路和上一题差不多,多了一步判断

package com.itheima;

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        //1.键盘录入一个字符串
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入字符串");
        String str = sc.next();

        //2.统计 --- 计数器count
        int smallCount = 0;
        int bigCount = 0;
        int numberCount = 0;

        for (int i = 0; i < str.length(); i++) {
            //i 表示字符串中的索引
            //c 表示字符串中的每一个字符
            char c = str.charAt(i);

            if(c >= 'a' && c <= 'z'){
                smallCount++;
            }else if(c >= 'A' && c <= 'Z'){
                bigCount++;
            }else if(c >= '0' && c <= '9'){
                numberCount++;
            }
        }
        System.out.println("大写字符有:" + bigCount + "个");
        System.out.println("小写字符有:" + smallCount + "个");
        System.out.println("数字字符有:" + numberCount + "个");
    }
}

字符串拼接

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

package com.itheima;

public class Main {
    public static void main(String[] args) {
        int[] arr = {1, 2, 3, 4, 5};

        String str = arrToString(arr);
        System.out.println(str);

    }

    private static String arrToString(int[] arr) {
        String str = "";
        str+="[";
        for (int i = 0; i < arr.length; i++) {
            str+=arr[i];
            if(i!=arr.length-1){
                str+=",";
            }
        }
        str+="]";
        return str;
    }
}

字符串反转

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

倒着输出

package com.itheima;

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入一个字符串");
        String str = sc.next();

        String result = reverse(str);
        System.out.println(result);

    }

    //核心思想:倒着遍历并进行拼接就可以了
    public static String reverse(String str){//abc
        String s = "";
        for (int i = str.length() - 1; i >= 0; i--) {
            s = s + str.charAt(i);
        }
        return s;
    }
}

金额转换

把2135变成:零佰零拾零万贰仟壹佰叁拾伍元
把789变成:零佰零拾零万零仟柒佰捌拾玖元

拆分为几个步骤:把数字变为大写、补全为七位数

package com.itheima;

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        //1.输入金额,不超过七位数
        Scanner sc = new Scanner(System.in);
        int money;

        //使用while循环,直到得到正确的金额
        while (true) {
            System.out.println("请输入金额:");
            money = sc.nextInt();
            if(money>=0 && money<=9999999){
                break;
            }else{
                System.out.println("输入有误,请重新输入");
            }
        }

        //2.将金额转换为大写金额
        String moneyStr="";
        while(true){
            int ge=money%10;
            String capitalMoney = getCapitalMoney(ge);
            moneyStr=capitalMoney+moneyStr;
            money=money/10;

            if(money==0){
                break;
            }
        }
        //3.在前面插入零,补全金额为7位数
        int count=7-moneyStr.length();
        for (int i = 0; i < count; i++) {
            moneyStr="零"+moneyStr;
        }

        //4.插入单位
        String result = "";
        String[] danwei = {"佰","拾","万","仟","佰","拾","元"};
        for(int i=0;i<moneyStr.length();i++){
            char ch = moneyStr.charAt(i);
            result = result+ch + danwei[i] ;
        }

        System.out.println(result);
    }

    private static String getCapitalMoney(int ge) {
        String[] CapitalMoney={"零","壹","贰","叁","肆","伍","陆","柒","捌", "玖"};
        return CapitalMoney[ge];
    }
}

手机号屏蔽

以字符串的形式从键盘接受一个手机号,将中间四位号码屏蔽。最终效果为:131****9468。

package com.itheima;

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        //1.键盘录入一个手机号码
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入手机号码");
        String phoneNumber = sc.next();

        //2.截取手机号码中的前三位
        String star = phoneNumber.substring(0, 3);

        //3.截取手机号码中的最后四位
        String end = phoneNumber.substring(7);

        //4.拼接
        String result = star + "****" + end;

        System.out.println(result);
    }
}
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值