/**
* Convert Arabic numerals within 10 billion into capitalized Chinese characters.
* @ Author Xi Zhenyin
*
*/
Public class CnUpperCaser {
//Integer part
Private string integerPart
//Fractional part
Private string floatPart
//Convert the number into an array of Chinese characters, which is set to static because it needs to be used in every instance.
Private static final char [] cnnumbers = {'zero',' one',' two',' three',' four',' five',' ground',' seven',' eight',' nine'};
//An array for hierarchical transformation, which is set to static because it is needed by every instance.
Private static final char [] series = {'yuan',' pick',' hundred',' thousand',' ten thousand',' pick',' hundred',' thousand',' hundred million'};
/**
* constructor, through which a string in Arabic numeral form is passed in.
* @param original
*/
Public CnUpperCaser (original string)
//member variable initialization
integerPart =
floatPart =
if(original.contains(" . ")){
//If decimal point is included
int dotIndex=original.indexOf(" . ");
integer part = original . substring(0,dot index);
float part = original . substring(dot index+ 1);
}
Otherwise {
//Does not contain decimal points.
integerPart = original
}
}
/**
* Get uppercase strings.
* @ Return
*/
Common string getCnString(){
//use StringBuffer because it is accumulation.
string buffer sb = new string buffer();
//integer part processing
for(int I = 0; I< integer part. length (); i++){
int number = get number(integer part . charat(I));
sb . append(cn numbers[number]);
sb . append(series[integer part . length()- 1-I]);
}
//Decimal part processing
if(float part . length()& gt; 0){
Sb.append ("point");
for(int I = 0; I & ltfloat part. length (); i++){
int number = get number(float part . charat(I));
sb . append(cn numbers[number]);
}
}
//Returns the spliced string.
return sb . tostring();
}
/**
* Convert numbers in character form into plastic numbers.
* Static modification is used because all examples are used.
* @param c
* @ Return
*/
private static int get number(char c){
string str = string . value of(c);
Returns integer. parseint (str);
}
/**
* @param args
*/
Public static void main(String[] args) {
System.out.println (new cnuppercase ("123456789.12345"). get cnstring());
System.out.println (new cnupper case(" 123456789 "). get cnstring());
System.out.println (new cnupper case(". 123456789 "). get cnstring());
System.out.println (new cnupper case(" 0. 1234 "). get cnstring());
System.out.println (new cnupper case(" 1 ")). get cnstring());
System.out.println (new cnupper case(" 12 "). get cnstring());
System.out.println (new cnupper case(" 123 "). get cnstring());
System.out.println (new cnupper case(" 1234 "). get cnstring());
System.out.println (new cnupper case(" 12345 "). get cnstring());
System.out.println (new cnupper case(" 123456 "). get cnstring());
System.out.println (new cnupper case(" 1234567 "). get cnstring());
System.out.println (new cnupper case(" 12345678 "). get cnstring());
System.out.println (new cnupper case(" 123456789 "). get cnstring());
}
}