ss - githubcopyright/test GitHub Wiki

package test;

import java.util.ArrayList; import java.util.Arrays; import java.util.HashMap; import java.util.Map;

public class testB02_2 {

public void show(Long input) {
String output = "";
if (input == 0)
	output = transToZhNum("0") ;
else {
String inputStr = String.valueOf(input);
if (inputStr.length() <= 13) {
String prefix = "";
for (int i = 0; i < 13-inputStr.length(); i++ )                                                     // 只轉換到兆,補滿13位
	prefix = prefix + "*";
inputStr = prefix + inputStr;
String[] fullStr = inputStr.split("");
ArrayList<String[]> groups = new ArrayList<String[]>();		                                        // 分組:{[0,兆],[1,億],[2,萬],[3,元]}
groups.add(Arrays.copyOfRange(fullStr, 0, 1));
groups.add(Arrays.copyOfRange(fullStr, 1, 5));
groups.add(Arrays.copyOfRange(fullStr, 5, 9));
groups.add(Arrays.copyOfRange(fullStr, 9, 13));
for (int i = 0; i < 4; i++ ) {
String chkZero = "";
for (String t : groups.get(i))
	if (!"*".equals(t))
		chkZero = chkZero + t;
			if (chkZero.length()>0 && Integer.parseInt(chkZero)>0)                                          // 規則:整組都是補位或是0,就不顯示
				output = output + transZh(i, groups.get(i));
		}
	}
}
if (output.length()>0)
	output = output + "元";
if(forTest(output))                                                                                         // 驗證用,用完可刪除
	System.out.println("true");
else
	System.out.println(input + " != " + output);
}
private  String transZh(int groupIndex,String[] group) {
String result ="";
for (int i=0 ; i<group.length ; i++ ) {
if ( !"*".equals(group[i]) ) {
	if ( !"0".equals(group[i]) ) {
			if (groupIndex==0)
				result = result + transToZhNum(group[i]);
			else
				result = result + transToZhNum(group[i]) + getDigit(i);
		}
		else {
			if ( i < group.length-1 && !"0".equals(group[i+1]) )
				result = result + transToZhNum(group[i]);
		}
	}
}
if (result.length()>0)                                                                                      // 補上群組單位
	result = result + getGroupDigit(groupIndex);
	return result;
}
private  String transToZhNum(String key) {
	Map<String, String> numberMap = new HashMap<>();
	numberMap.put("0","零");
	numberMap.put("1","壹");
	numberMap.put("2","貳");
	numberMap.put("3","參");
	numberMap.put("4","肆");
	numberMap.put("5","伍");
	numberMap.put("6","陸");
	numberMap.put("7","柒");
	numberMap.put("8","捌");
	numberMap.put("9","玖");
	return numberMap.get(key);
}
private  String getGroupDigit(Integer key) {
	Map<Integer, String> groupDigitMap = new HashMap<>();
	groupDigitMap.put(0, "兆");
	groupDigitMap.put(1, "億");
	groupDigitMap.put(2, "萬");
	groupDigitMap.put(3, "");
	return groupDigitMap.get(key);
}
private  String getDigit(Integer key) {
	Map<Integer, String> digitMap = new HashMap<>();
	digitMap.put(0, "仟");
	digitMap.put(1, "佰");
	digitMap.put(2, "拾");
	digitMap.put(3, "");
	return digitMap.get(key);
}
/**
 * 驗證用,用完可刪除
 * @param result
 * @return
 */
private  boolean forTest(String result) {
	ArrayList<String> arr = new ArrayList<String>();
	arr.add("伍萬零貳佰捌拾元");
	arr.add("伍佰柒拾萬貳仟零肆拾元");
	arr.add("柒仟零參億伍仟萬肆仟壹佰零壹元");
	arr.add("壹兆零參億伍仟萬肆仟壹佰零壹元");
	arr.add("伍萬零貳拾元");
	arr.add("伍萬元");
	arr.add("零元");
	arr.add("壹元");
	arr.add("玖兆元");
	arr.add("玖兆零壹元");
if (arr.contains(result))
	return true;
	return false;
}

}

⚠️ **GitHub.com Fallback** ⚠️