java将金额字符串取整转为人民币大写形式(疯狂java讲义164页)
2013-05-23 22:11
441 查看
import java.awt.*; import java.awt.event.*; import java.io.*; import javax.swing.*; public class NumtoRmb {//能解决连续两个0的情况 private String[] hanArr={"零","壹","贰","叁","肆","伍","陆","柒","捌","玖"}; private String[] unitArr={"拾","佰","仟","万","拾万"}; private String[] divide(double num) { long zheng=(long)num; long xiaoshu=(long)((num-zheng)*100);//long xiaoshu=Math.round((num-zheng)*100) return new String[]{zheng+"",String.valueOf(xiaoshu)}; } private boolean Judge(String str) {//判断截取的最后的几个字符是否全为0 boolean flag=true; for(int i=0;i<str.length();i++) { if(str.substring(i,i+1).equals("0")==false)//此处不能使用str[i]==“0”或‘0’的方式 flag=false; } return flag; } private String ChangetoRmb(String numstr) { String result=""; int len=numstr.length(); boolean flag=false;//用以解决出现连续两个0的情况 for(int i=0;i<len;i++) { int num=numstr.charAt(i)-48; if (i!=len-1 && num!=0) { result+=hanArr[num]+unitArr[len-2-i]; flag=true; } else if(i!=len-1&&num==0) { if(flag==false) { continue; } if(flag==true) {//若遇到0,则判断该0之后的子字符串是否全为0 if(Judge(numstr.substring(i,len))==true) {//若全为0,则直接退出循环 break; } flag=false; result+=hanArr[num]; } } else if(i==len-1) {//判断最后一个字符是否为0,若是则不输出任何东西 if(num==0) continue; else { result+=hanArr[num]; } } } return result; } public static void main(String[] args) { NumtoRmb nr=new NumtoRmb(); System.out.println(nr.ChangetoRmb((nr.divide(600110.563))[0])); } }
相关文章推荐
- 疯狂JAVA讲义4.1--截取中文字符串
- 华为机试题:将十六进制字符串形式内容转为内存值形式(java)
- JAVA中如何将一个json形式的字符串转为json对象
- Java:把汉字为unicode形式的字符串和把unicode字符串转换成汉字
- 自定义test之java json字符串转为java对象
- python:十进制数转为相应二进制数的字符串形式
- 疯狂JAVA讲义第三章练习
- java8--网络编程(java疯狂讲义3复习笔记)
- java练习:金额转换,阿拉伯数字转换成中文传统形式
- 疯狂JAVA讲义-接口和抽象类比较
- 疯狂JAVA讲义---第八章:泛型
- 【华为练习题】十六进制字符串形式转为内存值形式
- 疯狂JAVA讲义---第十二章:Swing编程(五)进度条和滑动条
- 疯狂JAVA讲义---第十三章:JDBC编程(上)
- Java:转换汉字为unicode形式的字符串和转换unicode形式字符串转换成汉字
- Java程序将字符串转为unicode的方法
- 疯狂Java讲义432页习题CopyPerson出错(未解决)
- java将时间戳转为字符串 将字符串转为时间戳
- java 如何把字符串转为输入流
- Java 字符串转为字符串数组