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];
    }
}
相关推荐
多加点辣也没关系7 分钟前
JavaScript|第31章:表单与控件
开发语言·javascript·ecmascript
菜鸟~noob23321 分钟前
【电子战】 第09篇:阵列信号处理——波束形成、MVDR、MUSIC【含matlab代码】
开发语言·matlab·信号处理
ocean210330 分钟前
2025-2026年Python面试高频知识点洞察
开发语言·python·面试·python八股文
零依赖极客1 小时前
Day 6·1 ARMv8.2 dotprod——vdotq_s32 一条指令做 4 个点积
c语言·开发语言·人工智能·矩阵·arm·vllm
shehuiyuelaiyuehao2 小时前
1计算机是如何工作的
java·计算机网络
letisgo52 小时前
JAVA 高级进阶07篇《@Transactional失效的8个场景:代理机制到传播行为》
java·面试·transactional·spring事务·aop动态代理
水域安全老周2 小时前
水趣钓鱼救生衣专利拆解:两级锁紧如何解决落水人衣分离
java·前端·网络
新时代牛马2 小时前
cyclictest 毛刺从哪来?从ftrace、latencytop、perf到IRQ/调度延迟定位
android·开发语言·python·kotlin
三8443 小时前
Java 模板注入(FreeMarker) · 02 · 模板引擎与 FreeMarker 语法
java·开发语言·web安全·freemarker
IvanCodes3 小时前
Python 基础语法(七):推导式与常见遍历写法
开发语言·python