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);}
}