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字符串训练(支票大写)
最新推荐文章于 2024-08-29 18:44:48 发布