如10000,显示壹万
public class Test1 {private String[] hanArr= {"零","壹","贰","叁","肆","伍","陆","柒","捌","玖"};private String[] unitArr = {"十","百","千","萬"};private String toHanStr(String num) {String result = "";int len = num.length();int[] a = new int[len];for(int i=0;i<len;i++) a[i] = num.charAt(i)-48;int flag=0;//分三步,思路:对中间和结尾的数划分开来判断 //第一个数的显示 if(i==0) result += hanArr[a[0]] + unitArr[len-2-i]; //中间数的判断 else if(a[i]==0 && i!=len-1) { flag=a[i]^a[i+1];if(flag==0)continue;if(flag==1)result += hanArr[a[i]] ;}else if(a[i]!=0 && i!= len-1)result += hanArr[a[i]] + unitArr[len-2-i];//末数的判断else if(a[len-1]==0) continue;elseresult += hanArr[a[i]];} return result;}public static void main(String[] args) {Test1 aa = new Test1();System.out.HanStr("10101"));}
}
处理任何位数的思路都与以上相似,将中间的零作异或处理。
本文发布于:2024-01-31 13:16:52,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170667821528796.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |