將阿拉伯數字轉換成大寫形式(完整)
阿新 • • 發佈:2019-02-07
public class Test
{
public String transfer(String number)
{
String result = "";
boolean flag1 = true;//用來控制輸不輸出零
boolean flag2 = true;//用來控制輸出萬或億
int length = number.length();
for(int i=length-1,j=1;i>=0;i--,j++)
{
String str = toCharacter(number.charAt(i));
if(str.equals("format error!"))
{
return "格式不正確";
}
int m = j%4;
if(m == 1)
{
if(!str.equals(""))
{
result = str + result;
flag1 = true;
}
else flag1 = false;
}
if(m == 2)
{
if(str.equals(""))
{
if(flag1)
{
result = "零" + result;
flag1 = false;
}
}
else
{
result = str + "拾" + result;
flag1 = true;
}
}
if(m == 3)
{
if(str.equals(""))
{
if(flag1)
{
result = "零" + result;
flag1 = false;
}
}
else
{
result = str + "佰" + result;
flag1 = true;
}
}
if(m == 0)
{
if(str.equals(""))
{
if(flag1)
{
result = "零" + result;
flag1 = false;
}
}
else
{
result = str + "仟" + result;
flag1 = true;
}
if(i>0)
{
if(flag2)
{
result = "萬" + result;
flag2 = false;
}
else
{
result = "億" + result;
flag2 = true;
}
}
}
}
System.out.println("******"+result+"******");
result = delUnwantedMyriad(result);
return result;
}
private String toCharacter(char c)
{
if(c == '0') return "";
else if(c == '1') return "壹";
else if(c == '2') return "貳";
else if(c == '3') return "叄";
else if(c == '4') return "肆";
else if(c == '5') return "伍";
else if(c == '6') return "陸";
else if(c == '7') return "柒";
else if(c == '8') return "捌";
else if(c == '9') return "玖";
else return "format error!";
}
//刪除多餘的“萬”字
private String delUnwantedMyriad(String str)
{
int length = str.length();
int pos = str.indexOf("億");
while(pos != -1)
{
if(str.charAt(pos+1) == '萬')
{
str = str.substring(0,pos+1) + str.substring(pos+2);
}
pos = str.indexOf("億",pos+1);
}
return str;
}
public static void main(String[] args)
{
Test test = new Test();
String result = test.transfer("10000000050");
System.out.println(result);
}
}
{
public String transfer(String number)
{
String result = "";
boolean flag1 = true;//用來控制輸不輸出零
boolean flag2 = true;//用來控制輸出萬或億
int length = number.length();
for(int i=length-1,j=1;i>=0;i--,j++)
{
String str = toCharacter(number.charAt(i));
if(str.equals("format error!"))
{
return "格式不正確";
}
int m = j%4;
if(m == 1)
{
if(!str.equals(""))
{
result = str + result;
flag1 = true;
}
else flag1 = false;
}
if(m == 2)
{
if(str.equals(""))
{
if(flag1)
{
result = "零" + result;
flag1 = false;
}
}
else
{
result = str + "拾" + result;
flag1 = true;
}
}
if(m == 3)
{
if(str.equals(""))
{
if(flag1)
{
result = "零" + result;
flag1 = false;
}
}
else
{
result = str + "佰" + result;
flag1 = true;
}
}
if(m == 0)
{
if(str.equals(""))
{
if(flag1)
{
result = "零" + result;
flag1 = false;
}
}
else
{
result = str + "仟" + result;
flag1 = true;
}
if(i>0)
{
if(flag2)
{
result = "萬" + result;
flag2 = false;
}
else
{
result = "億" + result;
flag2 = true;
}
}
}
}
System.out.println("******"+result+"******");
result = delUnwantedMyriad(result);
return result;
}
private String toCharacter(char c)
{
if(c == '0') return "";
else if(c == '1') return "壹";
else if(c == '2') return "貳";
else if(c == '3') return "叄";
else if(c == '4') return "肆";
else if(c == '5') return "伍";
else if(c == '6') return "陸";
else if(c == '7') return "柒";
else if(c == '8') return "捌";
else if(c == '9') return "玖";
else return "format error!";
}
//刪除多餘的“萬”字
private String delUnwantedMyriad(String str)
{
int length = str.length();
int pos = str.indexOf("億");
while(pos != -1)
{
if(str.charAt(pos+1) == '萬')
{
str = str.substring(0,pos+1) + str.substring(pos+2);
}
pos = str.indexOf("億",pos+1);
}
return str;
}
public static void main(String[] args)
{
Test test = new Test();
String result = test.transfer("10000000050");
System.out.println(result);
}
}