Java—字符串练习

案例一 拼接字符串

package com.lkbhua.Test;

public class test03 {
    public static void main(String[] args) {
        /*  拼接字符串
            定义一个方法,把int数组中的数据按照指定的格式拼接成一个字符串返回,
            调用该方法,并输出结果:
            例如:
                数组为 int[] arr = {1, 2, 3};
                执行方法后的输出结果为:[1,2,3]
        * * */
        int arr[] = {1,2,3};
        String str = arrayToString(arr);
        System.out.println(str);

    }

    // 1.我要干嘛?                          ---遍历数组并且把数组拼接成一个字符串
    // 2.我干这件事情需要什么才能完成?          ---数组
    // 3.我干完之后是否要把返回值给调用处         ---返回一个拼接之后的字符串
    // 如果调用处需要继续使用,那么必须返回
    // 如果----不需要-------------也可以不返回
    public static String arrayToString(int[] arr) {
        // 判断数组是否为null
        if(arr == null){
            return "数组为null";
        }
        if(arr.length == 0){
            return "数组为空[]";
        }

        // 拼接左括号
        String result = "[";
        // 正常数组执行操作
        for(int i = 0; i < arr.length; i++){
            // i:索引 arr[i]:元素
            if(i == arr.length - 1){
            result = result + arr[i];
            }else{
                result = result + arr[i] + ",";
            }

        }

        // 拼接右括号
        result = result + "]";
        return result;
    }

}

案例二 字符串反转

package com.lkbhua.Test;

import java.util.Scanner;

public class test04 {
    public static void main(String[] args) {
        /*  字符串反转
            定义一个方法,实现字符串反转。
            键盘录入一个字符串,调用该方法后,在控制台输出结果。
            例如:键盘录入abcdef,控制台输出fedcba
        * */
        String result = reverse("abcdef");
        System.out.println(result);
    }
    // 1、我要干嘛?         ---字符串的反转
    // 2、我干这个事情需要什么才能完成?   --- 需要一个字符串
    // 3、调用处是否需要继续使用方法的结果呢?  --- 需要结果进行输出

    public static String reverse(String str){
        // abc
        String result = "";
        for (int i = str.length()-1; i > 0 ; i--) {
            // i 依次表达字符串中的每一个索引(倒着的)
            char c = str.charAt(i);
            result = result + c;
        }
        return result;
    }
}

案例三 金额转换

逆着推算,先去掉单位,后去掉前面的零,等到2135. 写代码的 时候就顺着这个逻辑写。

第一步:2135➡贰壹叁伍

① 获取每一位数字

② 利用数组将数字变成大写

这种一一对应的思想即“查表法”。

第二步:很简单,缺多少就补多少零

第三步:输出单元即可

package com.lkbhua.Test;

import java.util.Scanner;

public class test05 {
    public static void main(String[] args) {
        /**  转换单位
         *   2315---贰叁壹伍
         *   补齐七位,不足的前面补0
         */
        int money;
        while(true){
            // 键盘录入一个金额
            Scanner sc = new Scanner(System.in);
            System.out.println("请输入金额:");
            money = sc.nextInt();
            // 判断金额是否合法
            if (money >= 0 && money < 10000000) {
                break;
            }
            else {
                System.out.println("金额不合法");
            }
        }
        System.out.println("你输入的金额是"+money);


        // 定义一个变量用来表示钱的大写
        String moneystr = "";
        

        // 2、得到money中的每一位数字
        // 其实就是一个如何获取 一个整数的问题
        while(true){
            // 从右往左获取每一位数字
            int ge = money % 10;
            String chinese = change(ge);
            // 把转换之后的大写拼接刀moneystr中
            moneystr = chinese + moneystr;
            // 第一次循环:“伍”+“ ” = “伍 ”
            // 第二次循环:“叁”+“伍”+“ ” = “叁伍 ”

            // 去掉每一位数字
            money = money / 10;

            // 如果数字上的每一位全部获取到了,则跳出循环
            if (money == 0) {
                break;
            }
        }


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


        // 4、插入单位
        // 定义一个数组表示单位
        String[] units = {"佰","拾","万","千","佰","拾","元"};
        // 如何插入呢
        // 遍历moneystr,依次得到每一位
        // 然后把单位插入

        String result = "";
        for (int i = 0; i < moneystr.length(); i++) {
            char c = moneystr.charAt(i);
            // 把大写数字和单位拼接到result中
            result = result + c + units[i];

        }

        // 5、打印最终的效果
        System.out.println(result);
        System.out.println("转换完成");
    }

    // 定义一个方法把数字变成大写的中文
    // 1--壹
    public static String change(int money) {
        // 定义数组
        String[] chinese = {"零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖"};
        // 返回结果
        return chinese[money];
    }
}

声明:

以上均来源于B站@ITheima的教学内容!!!

本人跟着视频内容学习,整理知识引用

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值