如何在jsp中将数据变成对应的壹贰叁肆伍陆
答案:2 悬赏:0 手机版
解决时间 2021-01-14 21:36
- 提问者网友:溺爱和你
- 2021-01-14 07:37
如何在jsp中将数据变成对应的壹贰叁肆伍陆
最佳答案
- 五星知识达人网友:低血压的长颈鹿
- 2021-01-14 08:26
在页面上加入以下java代码就可以实现了
package com.heyang;
public class CnUpperCaser {
// 整数部分
private String integerPart;
// 小数部分
private String floatPart;
// 将数字转化为汉字的数组,因为各个实例都要使用所以设为静态
private static final char[] cnNumbers={'零','壹','贰','叁','肆','伍','陆','柒','捌','玖'};
// 供分级转化的数组,因为各个实例都要使用所以设为静态
private static final char[] series={'元','拾','百','仟','万','拾','百','仟','亿'};
public CnUpperCaser(String original){
// 成员变量初始化
integerPart="";
floatPart="";
if(original.contains(".")){
// 如果包含小数点
int dotIndex=original.indexOf(".");
integerPart=original.substring(0,dotIndex);
floatPart=original.substring(dotIndex+1);
}
else{
// 不包含小数点
integerPart=original;
}
}
public String getCnString(){
// 因为是累加所以用StringBuffer
StringBuffer sb=new StringBuffer();
// 整数部分处理
for(int i=0;i0){
sb.append("点");
for(int i=0;i int number=getNumber(floatPart.charAt(i));
sb.append(cnNumbers[number]);
}
}
// 返回拼接好的字符串
return sb.toString();
}
private static int getNumber(char c){
String str=String.valueOf(c);
return Integer.parseInt(str);
}
public static void main(String[] args) {
System.out.println(new CnUpperCaser("123456789.12345").getCnString());
System.out.println(new CnUpperCaser("123456789").getCnString());
System.out.println(new CnUpperCaser(".123456789").getCnString());
System.out.println(new CnUpperCaser("0.1234").getCnString());
System.out.println(new CnUpperCaser("1").getCnString());
System.out.println(new CnUpperCaser("12").getCnString());
System.out.println(new CnUpperCaser("123").getCnString());
System.out.println(new CnUpperCaser("1234").getCnString());
System.out.println(new CnUpperCaser("12345").getCnString());
System.out.println(new CnUpperCaser("123456").getCnString());
System.out.println(new CnUpperCaser("1234567").getCnString());
System.out.println(new CnUpperCaser("12345678").getCnString());
System.out.println(new CnUpperCaser("123456789").getCnString());
}
}
package com.heyang;
public class CnUpperCaser {
// 整数部分
private String integerPart;
// 小数部分
private String floatPart;
// 将数字转化为汉字的数组,因为各个实例都要使用所以设为静态
private static final char[] cnNumbers={'零','壹','贰','叁','肆','伍','陆','柒','捌','玖'};
// 供分级转化的数组,因为各个实例都要使用所以设为静态
private static final char[] series={'元','拾','百','仟','万','拾','百','仟','亿'};
public CnUpperCaser(String original){
// 成员变量初始化
integerPart="";
floatPart="";
if(original.contains(".")){
// 如果包含小数点
int dotIndex=original.indexOf(".");
integerPart=original.substring(0,dotIndex);
floatPart=original.substring(dotIndex+1);
}
else{
// 不包含小数点
integerPart=original;
}
}
public String getCnString(){
// 因为是累加所以用StringBuffer
StringBuffer sb=new StringBuffer();
// 整数部分处理
for(int i=0;i0){
sb.append("点");
for(int i=0;i
sb.append(cnNumbers[number]);
}
}
// 返回拼接好的字符串
return sb.toString();
}
private static int getNumber(char c){
String str=String.valueOf(c);
return Integer.parseInt(str);
}
public static void main(String[] args) {
System.out.println(new CnUpperCaser("123456789.12345").getCnString());
System.out.println(new CnUpperCaser("123456789").getCnString());
System.out.println(new CnUpperCaser(".123456789").getCnString());
System.out.println(new CnUpperCaser("0.1234").getCnString());
System.out.println(new CnUpperCaser("1").getCnString());
System.out.println(new CnUpperCaser("12").getCnString());
System.out.println(new CnUpperCaser("123").getCnString());
System.out.println(new CnUpperCaser("1234").getCnString());
System.out.println(new CnUpperCaser("12345").getCnString());
System.out.println(new CnUpperCaser("123456").getCnString());
System.out.println(new CnUpperCaser("1234567").getCnString());
System.out.println(new CnUpperCaser("12345678").getCnString());
System.out.println(new CnUpperCaser("123456789").getCnString());
}
}
全部回答
- 1楼网友:玩世
- 2021-01-14 10:01
变换单个数字比较容易,用hashMap放入键值对,键是数字,值是大写汉字,使用时get出来就可以。但要判断如1020要写成壹仟零贰拾,需要判断长度以便能确定仟佰之类的,就相对复杂些,网上应该有例子,你百度一下。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯