金额转换,阿拉伯数字转换成中国传统形式。 写个测试方法!!急!!只要打印那一部分! 20

publicclassNumberConvertor{staticfinalcharNUMBER_CHAR[]=newchar[]{'零','壹','贰','叁','肆'... public class NumberConvertor {
static final char NUMBER_CHAR[] = new char[] { '零', '壹', '贰', '叁', '肆',
'伍', '陆', '柒', '捌', '玖' };
static final char UNIT_CHAR[] = new char[] { '拾', '佰', '仟', '万', '拾', '佰',
'仟', '亿', '拾', '佰', '仟' };

public String convert(int number) {
int remainingNumber = number;
StringBuffer sb = new StringBuffer();
int pos = 0;
int preDigit = -1;
while (remainingNumber > 0) {
int digit = remainingNumber % 10;
if (isUnitToPrint(digit, preDigit, pos)) {
sb.insert(0, UNIT_CHAR[pos - 1]);
}
if (isDigitToPrint(digit, preDigit, pos))
sb.insert(0, NUMBER_CHAR[digit]);
pos++;
preDigit = digit;
remainingNumber = remainingNumber / 10;
}
return sb.toString();
}

private boolean isDigitToPrint(int digit, int preDigit, int pos) {
//个,万,亿的零不输出
if (digit == 0 && (pos == 0 || pos == 4 || pos == 8)) {
return false;
}
//前后相邻,高位零不输出
if (digit == 0 && preDigit == 0) {
return false;
}
return true;
}

private boolean isUnitToPrint(int digit, int preDigit, int pos) {
//个位没有单位
if (pos == 0) {
return false;
}
//万,亿必须输出
if (pos == 5 || pos == 9) {
return true;
}
//零后不输出单位
if (digit == 0) {
return false;
}
return true;
}

}
展开
 我来答
百度网友13ed27d87
2011-11-25 · TA获得超过305个赞
知道答主
回答量:221
采纳率:0%
帮助的人:63.4万
展开全部
public class NumberConvertor {
static final char NUMBER_CHAR[] = new char[] { '零', '壹', '贰', '叁', '肆',
'伍', '陆', '柒', '捌', '玖' };
static final char UNIT_CHAR[] = new char[] { '拾', '佰', '仟', '万', '拾', '佰',
'仟', '亿', '拾', '佰', '仟' };

public String convert(int number) {
int remainingNumber = number;
StringBuffer sb = new StringBuffer();
int pos = 0;
int preDigit = -1;
while (remainingNumber > 0) {
int digit = remainingNumber % 10;
if (isUnitToPrint(digit, preDigit, pos)) {
sb.insert(0, UNIT_CHAR[pos - 1]);
}
if (isDigitToPrint(digit, preDigit, pos))
sb.insert(0, NUMBER_CHAR[digit]);
pos++;
preDigit = digit;
remainingNumber = remainingNumber / 10;
}
return sb.toString();
}

private boolean isDigitToPrint(int digit, int preDigit, int pos) {
//个,万,亿的零不输出
if (digit == 0 && (pos == 0 || pos == 4 || pos == 8)) {
return false;
}
//前后相邻,高位零不输出
if (digit == 0 && preDigit == 0) {
return false;
}
return true;
}

private boolean isUnitToPrint(int digit, int preDigit, int pos) {
//个位没有单位
if (pos == 0) {
return false;
}
//万,亿必须输出
if (pos == 5 || pos == 9) {
return true;
}
//零后不输出单位
if (digit == 0) {
return false;
}
return true;
}
追问
看好题目!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
彩色葛
2013-07-16
知道答主
回答量:1
采纳率:0%
帮助的人:1485
展开全部
package com.txx.test;

public class Test5 {

/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
NumberConvertor s = new NumberConvertor();
System.out.println(s.convert(1234));
}

}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式