Java基础之练习(2)

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

java 复制代码
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);
        }
    }
}

运行结果

统计字符次数

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

java 复制代码
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+"个");

    }
}

拼接字符串

java 复制代码
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

java 复制代码
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;

    }
}

运行结果

金额转换


代码

java 复制代码
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];
    }
}
相关推荐
道可到1 小时前
Java 反射现代实践速查表(JDK 11+/17+)
java
侃侃_天下2 小时前
最终的信号类
开发语言·c++·算法
道可到2 小时前
Java 反射现代实践指南(JDK 11+ / 17+ 适用)
java
玉衡子2 小时前
九、MySQL配置参数优化总结
java·mysql
叽哥2 小时前
Kotlin学习第 8 课:Kotlin 进阶特性:简化代码与提升效率
android·java·kotlin
麦兜*2 小时前
MongoDB Atlas 云数据库实战:从零搭建全球多节点集群
java·数据库·spring boot·mongodb·spring·spring cloud
带刺的坐椅2 小时前
DamiBus v1.1.0 发布(给单体多模块解耦)
java·事件总线·damibus
葡萄城技术团队2 小时前
用 Java 构建健壮 REST API 的 4 个关键技巧
java
杨杨杨大侠2 小时前
解密 atlas-mapper 框架 (9/10):故障排查与调试技巧
java·开源·github
Slaughter信仰2 小时前
深入理解Java虚拟机:JVM高级特性与最佳实践(第3版)第十章知识点问答(10题)
java·jvm·数据库