|
I also wrote it, interested in testing it. Ha ha.
import java.io. *;
public class a
{
public static void main (String [] args)
{
String s = new String ();
BufferedReader br = new BufferedReader (new InputStreamReader (System.in));
while (true)
{
try {s = br.readLine ();} catch (Exception e) {}
Convert c = new Convert (s.toCharArray ());
System.out.println (c);
}
}
}
class Convert
{
final String [] str1 = {"", "ten", "hundred", "thousand"};
final String [] str2 = {"100 million", "10,000"};
final String [] number = {"", "One", "Two", "Three", "Wu", "Wu", "Lu", "柒", "捌", "Jiu"};
char [] num_char;
StringBuffer sb = new StringBuffer ();
public Convert (char [] num)
{
num_char = num;
}
public String toString ()
{
int last = num_char.length% 4;
int pos = 0;
add (sb, new String (num_char, 0, last));
pos + = last;
for (int i = (int) (num_char.length / 4); i> 0; i--)
{
if (i% 2 == 0) sb.append (str2 [0]);
else sb.append (str2 [1]);
add (sb, new String (num_char, pos, 4));
pos + = 4;
}
if (last == 0) sb.deleteCharAt (0);
return sb.toString ();
}
private void add (StringBuffer sb, String temp)
{
char [] temp2 = temp.toCharArray ();
int length = temp.length ();
for (int i = 0; i <length; i ++)
{
if (temp2 [i] == '0')
if (sb.lastIndexOf ("zero")! = sb.length ()-1&&i! = 0) sb.append ("zero"); else;
else
{
sb.append (number [temp2 [i]-'0']);
sb.append (str1 [length-i-1]);
}
}
try {
if (sb.lastIndexOf ("zero") == sb.length ()-1) sb.deleteCharAt (sb.lastIndexOf ("zero"));
} catch (Exception e) {}
}
} |
|