public static void main(String[] args) { test t = new test(); System.out.println(t.encoder(12.01)); }
static final String[] flag1 = new String[]{ "圆","拾","佰","仟" }; static final String[] flag2 = new String[]{ "角","分" }; static final String[] num = new String[]{ "壹","贰","叁","肆","伍","陆","漆","捌","玖" };
public String encoder(double d) { String tmp = String.format("%01.2f", d);
String left,right; left = tmp.substring(0,tmp.indexOf(".")); right = tmp.substring(tmp.indexOf(".")+1);
StringBuilder str = new StringBuilder(); for(int i = 0; i < left.length(); i ++) { if(left.charAt(i) != '0') { str.append(num[Integer.parseInt(left.substring(i,i+1))-1]); str.append(flag1[left.length()-i-1]); } } if(str.charAt(str.length()-1) != '圆') str.append("圆"); for(int i = 0; i < right.length(); i ++) { if(right.charAt(i) != '0') { str.append(num[Integer.parseInt(right.substring(i,i+1))-1]); str.append(flag2[i]); } } str.append("整");
return str.toString(); }
呵呵,他是为了让你自己体会以下引用3楼public static void main(String[] args) { test t = new test(); System.out.println(t.encoder(12.01)); } // 不说了,全局常量 static final String[] flag1 = new String[]{ "圆","拾","佰","仟" }; static final String[] flag2 = new String[]{ "角","分" }; static final String[] num = new String[]{ "壹","贰","叁","肆","伍","陆","漆","捌","玖" }; // 主干程序 public String encoder(double d) { // 小数点2位的格式化处理 String tmp = String.format("%01.2f", d);
String left,right; // 数部分值 left = tmp.substring(0,tmp.indexOf(".")); // 小数部分值 right = tmp.substring(tmp.indexOf(".")+1); StringBuilder str = new StringBuilder(); for(int i = 0; i < left.length(); i ++) { // 这里有点问题,0的怎么办?应该有个else分支吧? if(left.charAt(i) != '0') { str.append(num[Integer.parseInt(left.substring(i,i+1))-1]); str.append(flag1[left.length()-i-1]); } } if(str.charAt(str.length()-1) != '圆') str.append("圆"); // 小数部分大写对应 for(int i = 0; i < right.length(); i ++) { if(right.charAt(i) != '0') { str.append(num[Integer.parseInt(right.substring(i,i+1))-1]); str.append(flag2[i]); } } str.append("整");
public static void main(String[] args) {
test t = new test();
System.out.println(t.encoder(12.01));
}
static final String[] flag1 = new String[]{
"圆","拾","佰","仟"
};
static final String[] flag2 = new String[]{
"角","分"
};
static final String[] num = new String[]{
"壹","贰","叁","肆","伍","陆","漆","捌","玖"
};
public String encoder(double d) {
String tmp = String.format("%01.2f", d);
String left,right;
left = tmp.substring(0,tmp.indexOf("."));
right = tmp.substring(tmp.indexOf(".")+1);
StringBuilder str = new StringBuilder();
for(int i = 0; i < left.length(); i ++) {
if(left.charAt(i) != '0') {
str.append(num[Integer.parseInt(left.substring(i,i+1))-1]);
str.append(flag1[left.length()-i-1]);
}
}
if(str.charAt(str.length()-1) != '圆') str.append("圆");
for(int i = 0; i < right.length(); i ++) {
if(right.charAt(i) != '0') {
str.append(num[Integer.parseInt(right.substring(i,i+1))-1]);
str.append(flag2[i]);
}
}
str.append("整");
return str.toString();
}
test t = new test();
System.out.println(t.encoder(12.01));
}
// 不说了,全局常量
static final String[] flag1 = new String[]{
"圆","拾","佰","仟"
};
static final String[] flag2 = new String[]{
"角","分"
};
static final String[] num = new String[]{
"壹","贰","叁","肆","伍","陆","漆","捌","玖"
};
// 主干程序
public String encoder(double d) {
// 小数点2位的格式化处理
String tmp = String.format("%01.2f", d);
String left,right;
// 数部分值
left = tmp.substring(0,tmp.indexOf("."));
// 小数部分值
right = tmp.substring(tmp.indexOf(".")+1);
StringBuilder str = new StringBuilder();
for(int i = 0; i < left.length(); i ++) {
// 这里有点问题,0的怎么办?应该有个else分支吧?
if(left.charAt(i) != '0') {
str.append(num[Integer.parseInt(left.substring(i,i+1))-1]);
str.append(flag1[left.length()-i-1]);
}
}
if(str.charAt(str.length()-1) != '圆') str.append("圆");
// 小数部分大写对应
for(int i = 0; i < right.length(); i ++) {
if(right.charAt(i) != '0') {
str.append(num[Integer.parseInt(right.substring(i,i+1))-1]);
str.append(flag2[i]);
}
}
str.append("整");
return str.toString();
}