Java基础之练习(2)

发布于:2024-06-23 ⋅ 阅读:(31) ⋅ 点赞:(0)

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

在这里插入图片描述

package String;

import java.util.Scanner;

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

        //进行遍历
        for (int i = 0; i < str.length(); i++) {
            // i 依次表示字符串的每一个索引
            //自动生成左边是 Ctrl + alt + v
            char c = str.charAt(i);
            System.out.println(c);
        }
    }
}

运行结果
在这里插入图片描述

统计字符次数

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

package String;

import java.util.Scanner;

public class StringDemo6 {
    public static void main(String[] args) {
        //键盘录入
        Scanner sc = new Scanner(System.in);
        System.out.println("输入一个字符串");
        String str = sc.next();
        //统计  计数器思想
        //定义三个计数器
        int bigCount = 0;
        int smallCount = 0;
        int numberCount = 0;
        for (int i = 0; i < str.length(); i++) {
            char c = str.charAt(i);
            if (c>='a' && c<='z'){
                char类型的变量在参与计算的时候自动类型提升为int查询ascii码表
                smallCount++;
            }else if(c>='A' && c<='Z'){
                bigCount++;
            }else if(c>='0' && c<='9'){
                numberCount++;
            }
        }
        System.out.println("小写字母有:"+smallCount+"个");
        System.out.println("大写字母有:"+bigCount+"个");
        System.out.println("数字字母有:"+numberCount+"个");

    }
}

拼接字符串

在这里插入图片描述

package String;

import com.sun.source.tree.IfTree;

import javax.xml.transform.Result;

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

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

    }


    //定义一个方法
    public static String arrToString(int[] arr){
        if (arr == null){
            return "";
        }
        if (arr.length == 0){
            return "[]";
        }
        String result = "[";
        //代码到这表示数组不是null 也不是长度为0的
        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;
    }
}

字符串反转

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

package String;

import javax.xml.transform.Result;

public class StringDemo8 {
    public static void main(String[] args) {
       String result = reverser("abc");
       System.out.println(result);

    }


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

    }
}

运行结果
在这里插入图片描述

金额转换

在这里插入图片描述
在这里插入图片描述
代码

package String;

import java.util.Scanner;

public class StringDemo9  {
    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 <= 99999999) {
                break;
            } else {
                System.out.println("输入金额无效");
            }
        }
        //定义一个变量用来表示钱的大写
        String moneyStr = "";
        //System.out.println(money);
        // 得到money里面的每一位数
        while (true){
            //从右往左获取数据
            int ge = money % 10;
            String capitalNumber = getCapitalNumber(ge);
            //把转换之后的大写拼接到moneystr中
            moneyStr = capitalNumber+moneyStr;
            money = money / 10;
            //如果数字上的每一位都获取到了,那么money记录的就是0,此时循环结束
            if (money == 0) {
                break;
            }
        }
        //在前面补0补齐七位
        int count = 7 - moneyStr.length();
        for (int i = 0; i < count; i++) {
            moneyStr="零"+ moneyStr;
        }
        //插入单位
        //定义一个数组表示单位
        String[] arr = {"佰","拾","萬","仟","佰","拾","元"};
        //遍历moneystr
        //然后把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];
    }
}