经常出现的一道面试题,将金额转换为RMB大写形式,如不懂题目意思可上网搜搜该题目,下面是我自己写的代码:
package com.wuhaiming;
/**
* 将金额转换为RMB大写形式.</p>
* @author wuhaiming
* @version V1.0
* @date 2010-10-14下午04:20:13
*/
public class Amount2RMB
{
//大写金额
private static char[] NUMBER_CHAR = "零壹贰叁肆伍陆柒捌玖".toCharArray();
//金额单位
private static char[] UNIT_CHAR = "元拾佰仟万拾佰仟亿拾佰仟".toCharArray();
/**
* @author: wuhaiming
* @Title convert
* @Time: 2010-10-14下午04:25:18
* @Description: 将数字转换为金额
* @throws:
* @param amount 小写金额
* @return: String 大写金额
*/
public static String convert(int amount)
{
StringBuffer amountStr = new StringBuffer();
if(amount > 9)
{
//当前位置
int pos = 0;
//当前位置所表示的值
int digit = amount % 10;
//上一位置所表示的值
int preDigit = -1;
while(amount > 0)
{
//如果个位为0的话则只输出单位
if(pos == 0 && digit == 0)
{
amountStr.insert(0, UNIT_CHAR[pos]);
}
else
{
//如果位置为万或者为亿的位置,就算当前位置值为0也要输出
//如12,000,675
if((pos == 4 || pos ==8) && digit == 0)
{
amountStr.insert(0, UNIT_CHAR[pos]);
}
else
{
//如果上一个位置与当前位置的值不同时为0的情况下
//过滤掉重复的0
if(digit != 0 || preDigit != 0)
{
//如果当前位置为0上一个位置不为0的情况下,则只输出数字,不需要单位
if(digit == 0 && preDigit != 0)
{
amountStr.insert(0, NUMBER_CHAR[digit]);
}
else
{
amountStr.insert(0, UNIT_CHAR[pos]);
amountStr.insert(0, NUMBER_CHAR[digit]);
}
}
}
}
amount = amount / 10;
pos++;
preDigit = digit;
digit = amount % 10;
}
return amountStr.toString().replaceAll("亿万", "亿");
}
else
{
return amountStr.append(NUMBER_CHAR[amount]).append(UNIT_CHAR[0]).toString();
}
}
public static void main(String[] args)
{
//备注:在这里就不对参数进行检验,即默认传过来的参数是正确的金额
System.out.println(convert(100324500));
}
}
分享到:
相关推荐
JAVA面试题JAVA面试题JAVA面试题JAVA面试题JAVA面试题JAVA面试题JAVA面试题JAVA面试题JAVA面试题
java面试题java面试题java面试题java面试题java面试题java面试题java面试题java面试题java面试题java面试题java面试题java面试题java面试题java面试题java面试题java面试题java面试题java面试题java面试题java面试题...
面试题包含了不同技术层面的面试问题,同时也能对一些没有面试开发经验的小白给予不可估量的包装, 让你的薪水绝对翻倍, 本人亲试有效.Java面试题84集、java面试专属及面试必问课程,所有的面试题有视屏讲解, 解答方案....
Java 面试题 Java 面试题 Java 面试题 Java 面试题 Java 面试题 Java 面试题 Java 面试题 Java 面试题 Java 面试题 Java 面试题
北大青鸟JAVA面试题北大青鸟JAVA面试题北大青鸟JAVA面试题北大青鸟JAVA面试题北大青鸟JAVA面试题北大青鸟JAVA面试题北大青鸟JAVA面试题北大青鸟JAVA面试题北大青鸟JAVA面试题北大青鸟JAVA面试题北大青鸟JAVA面试题...
Java人民币金额数字转换成大写,最常见的java面试题,最合理的解答。
2023java最新阿里巴巴面试题2023java最新阿里巴巴面试题2023java最新阿里巴巴面试题2023java最新阿里巴巴面试题2023java最新阿里巴巴面试题2023java最新阿里巴巴面试题2023java最新阿里巴巴面试题2023java最新阿里...
最全的j2EE面试题,题量大、经典,是我面试的整理试题 1、java笔试题大集合 2、各个公司面试题 3、J2EE初学者面试题 4、J2EE面试题(打码查错题) 5、java_华为笔试题 ...15、张孝祥整理Java就业面试题大全
Java面试题
java面试题java面试题18道java面试题18道java面试题18道java面试题java面试题18道java面试题18道java面试题18道java面试题java面试题18道java面试题18道java面试题18道java面试题java面试题18道java面试题18道java...
Java面试题以及答案整理
JAVA面试题2019
java面试题20道java面试题20道java面试题20道java面试题20道java面试题20道java面试题20道java面试题20道java面试题20道java面试题20道java面试题20道java面试题20道java面试题20道java面试题20道java面试题20道java...
java面试题大汇总(非常重要)java面试题大汇总(非常重要)java面试题大汇总(非常重要)java面试题大汇总(非常重要)java面试题大汇总(非常重要)java面试题大汇总(非常重要)java面试题大汇总(非常重要)java面试题大汇总...
java面试题总结资料
JavaOOP面试题 Java集合/泛型面试题 Java异常面试题 Java中的IO与NIO面试题 Java反射面试题 Java序列化面试题 Java注解面试题 多线程&并发面试题 JVM面试题 Mysql面试题 Redis面试题 Memcached面试题 MongoDB面试题 ...
最新各大公司企业真实面试题-Java面试题最新各大公司企业真实面试题-Java面试题
Java面试题Java面试题Java面试题Java面试题Java面试题Java面试题Java面试题Java面试题