package 字符串练习;
import java.util.Scanner;
public class 人名币训练 {
public static void main(String[] args) {
/* 需求: 用户输入一个数字,改成发票那样的展示出来
例子: 4321 -> 零佰零拾零万肆千叁佰贰拾壹元
共七位(固定)
*/
//思路: 1. 把用户读入的数字改写成大写,并用字符串拼接起来
// 2. 计算用户读入数字的位数
// 3. 在字符串前面补零(个数 = 7 - 用户读入的数字位数)
// 4. 再定义好单位名,两个string数组再同时拼接就ok了
int user_input_number = user_input();
//读入完毕
String upper_user_input_Reverse = upper_chinese(user_input_number);
//大写字符串完毕(反向)
String upper_forward_user_input_number = forware_use_input_upper(upper_user_input_Reverse);
//正向用户读入数字大写字符串准备完毕
upper_forward_user_input_number = add_zero(upper_forward_user_input_number);
//补零完毕
result(upper_forward_user_input_number);
}
public static int user_input () {
//用户读入数据
Scanner sc = new Scanner(System.in);
int user_input_number = sc.nextInt();
//读入完毕
return user_input_number;
}
public static String upper_chinese ( int user_input_number ){
//改写成大写,那就要先写好每个数字的大写汉字放到数组里
String upper_chinese[] = {"零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖" };
//想要得到每一位数字的大写,那么就先要得到每一位数字,然后数字对应大写数组索引取值就ok了
//先定义一个空string字符串,用于拼接
String upper_user_input_Reverse = "";
while (user_input_number > 0) {
upper_user_input_Reverse += upper_chinese[user_input_number % 10];
user_input_number /= 10;
}
//大写字符串完毕(反向)
return upper_user_input_Reverse;
}
public static String forware_use_input_upper (String upper_user_input_Reverse){
//准备将反向改成正向
String upper_forward_user_input_number = "";
for (int i = upper_user_input_Reverse.length() - 1; i >= 0; i--) {
upper_forward_user_input_number += upper_user_input_Reverse.charAt(i);
}
return upper_forward_user_input_number;
}
public static String add_zero (String upper_forward_user_input_number ){
//计算位数
int count = upper_forward_user_input_number.length();
//补 零
for (int i = count; i < 7; i++) {
upper_forward_user_input_number = "零" + upper_forward_user_input_number;
}
return upper_forward_user_input_number;
}
public static void result(String upper_forward_user_input_number){
//定义单位名
char unit[] = {'佰','拾','万','千','佰','拾','元'};
//同时拼接
String results = "";
for (int i = 0; i < upper_forward_user_input_number.length(); i++) {
results = results + upper_forward_user_input_number.charAt(i) + unit[i];
}
System.out.println(results);
}
}
JavaBean字符串训练(支票大写)
不会,就是不会!2023-09-24 10:07
相关推荐
sun03224 小时前
【架构基础】Spring中的PropertySourcesPlaceholderConfigurer介绍 (并非新知识,比较古老的一种使用方式)CoovallyAIHub4 小时前
AAAI 2026这篇杰出论文说了什么?用LLM给CLIP换了个“聪明大脑”chilavert3184 小时前
技术演进中的开发沉思-356:重排序(中)毕设源码-邱学长4 小时前
【开题答辩全过程】以 基于SSM的儿童福利院管理系统为例,包含答辩的问题和答案devmoon4 小时前
为 Pallet 搭建最小化 Mock Runtime 并编写单元测试环境TT哇4 小时前
【实习】数字营销系统 银行经理端(interact_bank)前端 Vue 移动端页面的 UI 重构与优化Physicist in Geophy.4 小时前
一维波动方程(从变分法角度)Elieal4 小时前
SpringBoot 数据层开发与企业信息管理系统实战识君啊4 小时前
MyBatis-Plus 逻辑删除导致唯一索引冲突的解决方案im_AMBER4 小时前
Leetcode 115 分割链表 | 随机链表的复制