java 金额转换代码

chen_jiakuan 2008-04-14 10:39:34
java 金额转换代码
...全文
146 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
cky417 2008-04-14
  • 打赏
  • 举报
回复

public class test1 {

/**
* @param args
*/
public static void main(String[] args) {
// TODO 自动生成方法存根
String str="100000000.00";
String s=money2upper(str);
System.out.println(s);



}



private static String money2upper(String s)
{
if (s == null || s.equals(""))
return "";
if (s.startsWith("¥") || s.startsWith("$"))
s = s.substring(1);

String s1 = "" + s;
String s2 = "Y";
StringBuffer stringbuffer = new StringBuffer();
int i = 0;
boolean flag = true;
i = 0;
do
{
if (i >= s1.length())
break;
if ((s1.charAt(i) < '0' || s1.charAt(i) > '9') && s1.charAt(i) != '.' && s1.charAt(i) != '-')
{
flag = false;
break;
}
if (!s1.substring(i, i + 1).equals("0") && !s1.substring(i, i + 1).equals("-") && !s1.substring(i, i + 1).equals(".") && !s1.substring(i, i + 1).equals(" "))
break;
i++;
} while (true);
if (!flag)
return s;
if (i == s1.length())
if (s2.equalsIgnoreCase("N"))
return "";
else
return "零元整";
i = s1.indexOf("-");
if (i > -1)
{
stringbuffer.append("负");
s1 = s1.substring(i + 1);
}
String s3 = s1;
String s4 = "00";
i = s1.indexOf(".");
if (i > -1)
{
s3 = s1.substring(0, i);
s4 = s1.substring(i + 1);
if (s4.length() == 0)
s4 = "00";
if (s4.length() == 1)
s4 = s4 + "0";
}
boolean flag1 = false;
if (s3.startsWith("0") && s3.endsWith("0"))
{
flag1 = true;
} else
{
String s6 = "N";
for (int j = 0; j < s3.length(); j++)
{
String s7 = s3.substring(j, j + 1);
int k = s3.length() - j - 1;
if (s7.equals("0") && k != 0 && k != 4 && k != 8)
{
s6 = "Y";
continue;
}
if (s7.equals("0"))
{
s6 = "N";
String p1=stringbuffer.substring(stringbuffer.length()-1,stringbuffer.length());
String p2=addUnit(k);
System.out.println(p1+" "+p2);
if(!(p1.equals("亿") && p2.equals("万")) ){
stringbuffer.append(addUnit(k));
}
continue;
}
if (s6.equals("Y"))
{
stringbuffer.append(dToU("0"));
s6 = "N";
}
stringbuffer.append(dToU(s7));
stringbuffer.append(addUnit(k));
}

}
long l = Long.parseLong(s4);
for (int i1 = s4.length() - 2; i1 > 0; i1--)
{
long l1 = l % 10L;
l /= 10L;
if (l1 >= 5L)
l++;
}

if (l == 0L)
{
stringbuffer.append("整");
} else
{
String s5 = String.valueOf(l);
if (s5.length() == 1)
s5 = "0" + s5;
if (s5.startsWith("0") && !s5.endsWith("0"))
{
if (!flag1)
stringbuffer.append("零");
} else
{
stringbuffer.append(dToU(s5.substring(0, 1)));
stringbuffer.append("角");
}
String s8 = s5.substring(1, 2);
if (!s8.equals("0"))
{
stringbuffer.append(dToU(s5.substring(1, 2)));
stringbuffer.append("分");
} else
{
stringbuffer.append("整");
}
}
return stringbuffer.toString();
}

private static String dToU(String s)
{
String s1 = "零壹贰叁肆伍陆柒捌玖";
int i = Integer.parseInt(s);
return s1.substring(i, i + 1);
}

private static String addUnit(int i)
{
String s = "元拾佰仟万拾佰仟亿拾佰仟万";
return s.substring(i, i + 1);
}


}
黑夜 2008-04-14
  • 打赏
  • 举报
回复
up
whmjxa 2008-04-14
  • 打赏
  • 举报
回复
用switch语句啊
将阿拉伯数字转为汉字
cjkwin 2008-04-14
  • 打赏
  • 举报
回复
邮箱发给我!

67,538

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧