JAVA学习第八章——字符串难点练习

金额转换

package one;

import java.util.Scanner;

public class first {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int money;

        while (true) {
            System.out.println("请录入一个金额");
            money = sc.nextInt();
            if (money >= 0 && money <= 9999999) {
                break;
            } else {
                System.out.println("金额无效");
            }
        }


        String moneyStr = "";
        while (true){
            int ge = money % 10;
            String capitalNumber = getCapitalNumber(ge);

            moneyStr =  capitalNumber + moneyStr;

            money = money / 10;

            if (money == 0){
                break;
            }
        }

        int count = 7 - moneyStr.length();

        for (int i = 0; i < count; i++) {
            moneyStr = "零" + moneyStr;
        }

        System.out.println(moneyStr);

        String[] arr = {"佰","拾","万","仟","佰","拾","元"};

        String result = "";
        for (int i = 0; i < moneyStr.length(); i++) {
            char c = moneyStr.charAt(i);
            result = result + c + arr[i];
        }

        System.out.println(result);


    }

    public static String getCapitalNumber(int number){
        String[] arr = {"零","壹","贰","叁","肆","伍","陆","柒","捌","玖"};

        return arr[number];

    }
}


手机号屏蔽

package one;

import java.util.Scanner;

public class first {
    public static void main(String[] args) {
     String phoneNumber = "13112349876";

        String subStr = phoneNumber.substring(0, 3);

        String subEnd = phoneNumber.substring(7);

        String result = subStr + "****" + subEnd;

        System.out.println(result);

    }
}

身份证信息查看

package one;

import java.util.Scanner;

public class first {
    public static void main(String[] args) {
        String Id = "321281202001011234";

        String year = Id.substring(6, 10);

        String month = Id.substring(10, 12);

        String day = Id.substring(12, 14);

        System.out.println("出生年份:" + year + "出生月份:" + month + "出生日期:" + day);

        char sex = Id.charAt(16);

        int num = sex - 48;

        if(num % 2 == 0){
            System.out.println("女");
        }else {
            System.out.println("男");
        }
    }
}

敏感词替换

package one;

import java.util.Scanner;

public class first {
    public static void main(String[] args) {
        String talk = "玩的真好,TMD,WDNMD";

        String[] arr = {"TMD", "CNM", "WDNMD", "MLGB"};

        for (int i = 0; i < arr.length; i++) {
            talk = talk.replace(arr[i], "***");
        }

        System.out.println(talk);
    }
}
replace(旧值,新值)

StringBuilder

        StringBuilder sb = new StringBuilder("abc");

        sb.append(1);
        sb.append(2.3);
        sb.append(true);

        System.out.println(sb);
        StringBuilder sb = new StringBuilder("abc");

        sb.reverse();

        int len = sb.length();
        System.out.println(len);

        System.out.println(sb);
        StringBuilder sb = new StringBuilder();

        sb.append("aaa");
        sb.append("bbb");
        sb.append("ccc");
        sb.append("ddd");

        System.out.println(sb);

        String str = sb.toString();

        System.out.println(str);
        StringBuilder sb = new StringBuilder();
        sb.append("aaa").append("bbb").append("ccc").append("ddd");

        System.out.println(sb);
链式编程
StringBuilder可以看成是一个容器,创建之后里面的内容是可变的
public StringBuilder() 创建一个空白可变字符串对象,不含有任何内容
public StringBuilder(String str)根据字符串的内容,来创建可变字符串对象
public StringBulider append(任意类型) 添加数据,并返回对象本身
public StringBulider reverse() 反转容器中的内容
public int length() 返回长度(字符出现的个数)
public String toString() 通过toString()就可以实现把StringBuilder转换为String

对称字符串

键盘接受一个字符串,程序判断出该字符串是否是对称字符串,并在控制台打印是或不是

        Scanner sc = new Scanner(System.in);
        System.out.println("请输入一个字符串");
        String str = sc.next();

        String result = new StringBuilder().append(str).reverse().toString();

        if(str.equals(result)){
            System.out.println("当前字符串是对称字符串");
        }else {
            System.out.println("当前字符串不是对称字符串");
        }
使用StringBuilder的场景:
字符串的拼接
字符串的反转

拼接字符串

定义一个方法,把int数组中的数据按照指定的格式拼接成一个字符串返回,调用该方法,并在控制台输出结果

package one;

import java.util.Scanner;

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

        String str = arrToString(arr);

        System.out.println(str);

    }

    public static String arrToString(int[] arr){
        StringBuilder sb = new StringBuilder();
        sb.append("[");
        for (int i = 0; i < arr.length; i++) {
            if(i == arr.length -1){
                sb.append(arr[i]);
            }else {
                sb.append(arr[i]).append(",");
            }
        }
        sb.append("]");

        return  sb.toString();
    }
}

Tips

以上学习内容均来自于B站黑马程序员

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值