实用类题目

1. 密码强度检测

  • 题目描述:生活中,为保证账户安全,密码需要有一定强度。编写一个方法,接收一个字符串作为密码,判断其是否符合以下强度要求:长度至少为 8 位,包含至少一个大写字母、一个小写字母和一个数字。
  • 测试数据
    • 输入:"Abc12345",输出:true
    • 输入:"abc123",输出:false
    • 输入:"ABCDEFGH",输出:false
import java.util.Scanner;

public class ppwdTest {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        do {
            System.out.println("输入密码:");
            String str = input.next();

            boolean upper = false;
            boolean lower = false;
            boolean num = false;
            boolean pwdLength = false;


                for (int i=0; i < str.length(); i++) {
                    char strWord=str.charAt(i);
                    if (Character.isUpperCase(strWord)) {
                        upper=true;
                    }

                    if (Character.isDigit(strWord)) {
                        num=true;
                    }

                    if (Character.isLowerCase(strWord)) {
                        lower=true;
                    }
                }

            if (str.length()>=8){
                pwdLength = true;
            }

            if (pwdLength == false){
                System.out.println("密码长度至少8位!");
            }

            if (upper == false){
                System.out.println("密码需包含大写字符!");
            }

            if (lower == false){
                System.out.println("密码需包含小写字符!");
            }

            if (num == false){
                System.out.println("密码需包含数字!");
            }

            if(upper == true && lower == true && num == true){
                System.out.println("密码符合条件!");
                break;
            }
        }while (true);

    }
}

 输出结果:

2. 地址信息提取

  • 题目描述:在填写收货地址时,地址格式通常为 “省份 - 城市 - 详细地址”。编写一个方法,接收完整地址字符串,分别返回省份、城市和详细地址信息。
  • 测试数据
    • 输入:"广东省 - 广州市 - 天河区某街道",输出:省份:"广东省",城市:"广州市",详细地址:"天河区某街道"
public class AddressTest {
    public static void main(String[] args) {
        String address = "广东省 - 广州市 - 天河区某街道";
        String[] str = address.split(" - ");
        if (str.length == 3) {
            String province = str[0];
            String city = str[1];
            String addressDetail = str[2];
            System.out.println("省份:" + province + ",城市:" + city + ",详细地址:" + addressDetail);
        } else {
            System.out.println("输入的地址格式不正确。");
        }
    }
}

 输出结果:

3. 文件名扩展名分离

  • 题目描述:在处理文件时,经常需要分离文件名和扩展名。编写一个方法,接收一个完整文件名(包含扩展名)的字符串,分别返回文件名和扩展名。
  • 测试数据
    • 输入:"example.txt",输出:文件名:"example",扩展名:"txt"
    • 输入:"document.pdf",输出:文件名:"document",扩展名:"pdf"
public class fileTest {
    public static void main(String[] args) {
        String file = "example.txt";
        int dotIndex = file.lastIndexOf('.');
        String fileName = file.substring(0, dotIndex);
        String extension = file.substring(dotIndex + 1);
        System.out.println("文件名:" + fileName + ",扩展名:" + extension);

        String file2 = "document.pdf";
        dotIndex = file2.lastIndexOf('.');
        fileName = file2.substring(0, dotIndex);
        extension = file2.substring(dotIndex + 1);
        System.out.println("文件名:" + fileName + ",扩展名:" + extension);
    }
}

输出结果:

4. 歌词分行处理

  • 题目描述:在音乐软件中,歌词一般按行显示。假设歌词以字符串形式存储,每行歌词之间用换行符 \n 分隔。编写一个方法,接收歌词字符串,返回每行歌词组成的字符串数组。
  • 测试数据
    • 输入:"我和我最后的倔强\n握紧双手绝对不放",输出:["我和我最后的倔强", "握紧双手绝对不放"]
public class MusicTest {
    public static void main(String[] args) {

        String music = "我和我最后的倔强\n握紧双手绝对不放";
        String[] lines = music.split("\n");
        for (int i = 0; i < lines.length; i++) {
            System.out.print( lines[i]);
            if (i < lines.length - 1) {
                System.out.print(", ");
            }
        }
    }
}

 输出结果:

5. 商品价格格式化

  • 题目描述:在电商平台展示商品价格时,通常会将价格格式化为带有千位分隔符且保留两位小数的形式。编写一个方法,接收一个表示价格的字符串(如 "1234.5"),返回格式化后的价格字符串(如 "1,234.50")。
  • 测试数据
    • 输入:"1234.5",输出:"1,234.50"
    • 输入:"1000",输出:"1,000.00"
import java.util.Scanner;

public class PriceTest {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);

        System.out.print("请输入价格:");
        String price = input.next();

        int dotIndex = price.lastIndexOf('.');
        String priceHigh;
        String priceLow;
        if (price.contains(".")){
            priceHigh = price.substring(0, dotIndex);
            priceLow = price.substring(dotIndex + 1);
        }else {
            priceHigh = price;
            priceLow = "00";
        }

        StringBuffer priceSbf = new StringBuffer(priceHigh);
        for (int i = priceHigh.length() - 3; i > 0; i-=3) {
            priceSbf.insert(i, ",");
        }

        System.out.println("价格为:"+priceSbf.toString()+"."+priceLow);
    }
}

 输出结果:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值