题解
人民币转换
http://www.nowcoder.com/questionTerminal/00ffd656b9604d1998e966d555005a4b
import java.util.Scanner; /** * @create 2020-06-28-17:11 */ public class renminbi { static String[] china = {"壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖"}; static String[] shi = {"", "拾", "佰", "仟"}; static String[] wang = {"", "万", "亿"}; public static void main(String[] args){ Scanner scanner = new Scanner(System.in); while(scanner.hasNext()){ String input = scanner.nextLine(); String[] arr = input.split("\\."); String sb_right = xiaoshu(arr[1]); String sb_left = zhengshu(arr[0]); StringBuilder sb = new StringBuilder(); sb.insert(0, sb_right); if(!sb_left.equals("")){ sb.insert(0, "元"); } sb.insert(0, sb_left); sb.insert(0, "人民币"); System.out.println(sb.toString()); } } public static String zhengshu(String input){ if("0".equals(input)) return ""; StringBuilder sb = new StringBuilder(); int len = input.length(); int index = len - 1; int k = 0; while(index >= 0 && index - 3 >= 0){ String temp = siweishu(input.substring(index - 3, index + 1)); if(!"零".equals(temp)){ sb.insert(0, wang[k]); } sb.insert(0, temp); index = index - 4; k++; } if(index != -1){ String temp = siweishu(input.substring(0, index + 1)); sb.insert(0, wang[k]); sb.insert(0, temp); } return sb.toString(); } public static String siweishu(String input){ StringBuilder sb = new StringBuilder(); int temp = Integer.valueOf(input); if(temp == 0) return "零"; int index = 0; boolean flag = false; while(temp / 10 != 0){ int a = temp % 10; if(a == 0){ if(!flag && index != 0){ sb.insert(0, "零"); flag = true; } }else{ sb.insert(0, shi[index]); sb.insert(0, china[a - 1]); } index++; temp = temp / 10; } if(index == 1 && temp == 1){ sb.insert(0, shi[index]); }else{ sb.insert(0, shi[index]); sb.insert(0, china[temp % 10 - 1]); } return sb.toString(); } public static String xiaoshu(String input){ StringBuilder sb = new StringBuilder(); if(input.charAt(0) == '0' && input.charAt(1) == '0'){ sb.append("整"); }else{ if(input.charAt(0) != '0'){ sb.append(china[Integer.valueOf(input.substring(0, 1)) - 1] + "角"); } if(input.charAt(1) != '0'){ sb.append(china[Integer.valueOf(input.substring(1, 2)) - 1] + "分"); } } return sb.toString(); } }