美团网校招笔试题,思路如下:
1、先建立两个字符数组,一个是表示单位,一个是表示金额数;
2、利用取余操作将数字从低位到高位依次取出来,分别添加单位和转换金额;
3、去零操作
package interview;
import java.util.Scanner;
/**
* 美团网笔试题:金额转换
* 如:1029->壹仟零贰拾玖元
* @author USER
*
*/
public class MeiTuan {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
long a = in.nextLong();
System.out.println(convert(a));
}
private static final char[] data = {'零','壹','贰','叁','肆','伍','陆','柒','捌','玖'};
private static final char[] unit = {'元','拾','佰','仟','万','拾','佰','仟','亿'};
private static String convert(long money) {
// TODO Auto-generated method stub
StringBuffer sb = new StringBuffer();
int p = 0;
while (money!=0) {
sb.insert(0, unit[p++]);//始终在第一个位置插入
int m = (int) (money % 10);
sb.insert(0, data[m]);
money = money / 10;
}
return sb.toString().replaceAll("零[拾佰仟]", "零").replaceAll("零+", "零").replaceAll("零+万", "万").replaceAll("零+元", "元");
}
}