- 最後登錄
- 2023-9-15
- 在線時間
- 53 小時
- 註冊時間
- 2008-1-14
- 閱讀權限
- 30
- 精華
- 2
- UID
- 3269795
- 帖子
- 157
- 積分
- 1543 點
- 潛水值
- 4187 米
| - import javax.swing.JOptionPane; //引入JOptionPane類別
- public class Converter {
- public static final String[] num = {"零","壹","貳","參","肆","伍","陸","柒","捌","玖"};
- public static final String[] unit1={"","拾","佰","仟"};
- public static final String[] unit2={"","萬","億","兆","京"};
- private static long parseLong(String in) throws NumberFormatException {
- long out = 0;
- out = Long.parseLong(in);
- return out;
- }
- public static String convert(String in) {
- try {
- return convert(parseLong(in));
- } catch (Exception e) {
- return "Error.\n"+e.getMessage();
- }
- }
- public static String convert(long in) {
- String out = "",tmp = "";
- boolean minus = false;
- boolean zero = false;
- int i = 0;
- if(in == 0)
- return num[0];
- else if(in < 0) {
- minus = true;
- in = -in;
- }
- while(in > 0) {
- while(in % 10000 == 0) {
- i+=4;
- in /= 10000;
- zero = true;
- }
- if(tmp != "" && !tmp.contains(unit1[3])) {
- out = num[0] + out;
- zero = false;
- }
- out = unit2[i/4] + out;
- if(zero && out.length()>1) {
- out = num[0] + out;
- zero = false;
- }
- out = (tmp = convert((short) (in%10000))) + out;
- zero = false;
- in /= 10000;
- i += 4;
- }
- if(minus) {
- out = "負" + out;
- }
- return out;
- }
- private static String convert(short in) {
- String out = "";
- boolean zero = false;
- if(in == 0) {
- return out;
- }
- for(int i = 0 ; in > 0 ; i++,in/=10) {
- if(in % 10 == 0 && !zero) {
- zero = true;
- if(in > 0 && !out.equals("")) {
- out = num[0] + out;
- }
- } else if(in % 10 != 0) {
- out = num[in % 10] + unit1[i] + out;
- zero = false;
- }
- }
- return out;
- }
- public static void main(String[] argv) {
- String input;
- input = JOptionPane.showInputDialog("請輸入數字串:");
- JOptionPane.showMessageDialog(null,input + "\n" + Converter.convert(input));
- }
- }
複製代碼 ... |
|