String strFraction = null; int intDotPos = pValue.indexOf("."); if (-1 == intDotPos) return ""; strFraction = pValue.substring(intDotPos + 1); System.out.println("have it"+strFraction); StringBuilder sbResulet = new StringBuilder(strFraction.length());
for (int i = 0; i < strFraction.length(); i++) { System.out.println("have it In"+strFraction); sbResulet.append(a_strNumber[strFraction.charAt(i)-48]); } return sbResulet.toString(); } /* * */ public String getInteger(){
我给你。package scjp;public class GetDot {
private final static String[] a_strNumber = { "零", "壹", "贰", "叁", "肆", "伍",
"陆", "柒", "捌", "玖" };
public static void main(String[] args) throws Exception { GetDot dot = new GetDot();
String encoding = System.getProperty("file.encoding"); System.out.println("encoding======" + encoding); String str="10.23";
String getFraction=dot.getFraction(str);
System.out.println("========"+getFraction);
} /*
* 得到符号位,如果输入的是正数就返回" ",否则就返回负号
*/
public String getSign(String pValue) { return pValue.indexOf("-") == 0 ? "负" : " ";
} /*
* 得到小数部分的汉字,如10.23,就输出贰叁
*/
public String getFraction(String pValue) {
String strFraction = null; int intDotPos = pValue.indexOf(".");
if (-1 == intDotPos)
return "";
strFraction = pValue.substring(intDotPos + 1);
System.out.println("have it"+strFraction);
StringBuilder sbResulet = new StringBuilder(strFraction.length());
for (int i = 0; i < strFraction.length(); i++) {
System.out.println("have it In"+strFraction);
sbResulet.append(a_strNumber[strFraction.charAt(i)-48]);
}
return sbResulet.toString();
}
/*
*
*/
public String getInteger(){
return null;
}
}
"陆", "柒", "捌", "玖" }; private final static String[] a_strModify = { "", "拾", "佰", "仟", "万", "拾",
"佰", "仟", "亿", "拾", "佰", "仟" }; public static void main(String[] args) throws Exception { GetDot dot = new GetDot(); String str = "-101.23";
String getSign = dot.getSign(str);
String getFraction = dot.getFraction(str);
String getDot = dot.getDot(str);
String getInteger = dot.getInteger(str);
System.out.println("========" + getSign + getInteger + getDot
+ getFraction); } /*
* 得到符号位,如果输入的是正数就返回" ",否则就返回负号
*/
public String getSign(String pValue) { return pValue.indexOf("-") == 0 ? "负" : " ";
} /*
* 得到小数部分的汉字,如10.23,就输出贰叁
*/
public String getFraction(String pValue) { String strFraction = null; int intDotPos = pValue.indexOf(".");
if (-1 == intDotPos)
return "";
strFraction = pValue.substring(intDotPos + 1);
System.out.println("have it" + strFraction);
StringBuilder sbResulet = new StringBuilder(strFraction.length()); for (int i = 0; i < strFraction.length(); i++) {
System.out.println("have it In" + strFraction); sbResulet.append(a_strNumber[strFraction.charAt(i) - 48]);
}
return sbResulet.toString();
} /*
* 得到整数部分的数据
*/
public String getInteger(String pValue) { System.out.println("============");
String strInteger = null; int intDotPos = pValue.indexOf("."); int intSignPos = pValue.indexOf("-"); if (intDotPos == -1) { intDotPos = pValue.length();
} strInteger = pValue.substring(intSignPos + 1, intDotPos);
/*
* 反转strInteger
*/
strInteger = new StringBuffer(strInteger).reverse().toString();
System.out.println("StrInteger====" + strInteger);
StringBuilder sbResult = new StringBuilder(); for (int i = 0; i < strInteger.length(); i++) {
sbResult.append(a_strModify[i]);
sbResult.append(a_strNumber[strInteger.charAt(i) - 48]);
}
/*
* 在反转
*/ sbResult = sbResult.reverse();
return sbResult.toString();
} /*
* 得到小数点
*/
public String getDot(String pValue) { return pValue.indexOf(".") != -1 ? "点" : "";
}
}
这个朋友特有意思,赫赫
具有很高的价值,不过记得好像还存在小问题。//要求从键盘输入一数字,然后中文输出(要符合中文语法)
//例如输入12434则 输出 一万二千四百三十四//转换成中文表达形式
class Translate{
public void translate(String input) {
String[] num=new String[] {"零","一","二","三","四","五","六","七","八","九"};
String[] unit=new String[]{"","十","百","千","万","亿"};
String[] mid=new String[input.length()];
String output="";
//转换数字
for (int i=0; i<input.length(); i++) {
mid[i]=num[Integer.parseInt(""+input.charAt(i))];
output+=mid[i];
}
//加入单位
String str="";
String result="";
for (int i=0; i<output.length(); i++) {
if (output.length()-i-1==0) {
str=""+output.charAt(i);
}
else if ((output.length()-i-1+4)%8==0) {
str=output.charAt(i)+unit[4];
}
else if ((output.length()-i-1)%8==0) {
str=output.charAt(i)+unit[5];
}
else {
str=output.charAt(i)+unit[(output.length()-i-1)%4];
}
result+=str;
} //格式化成中文习惯表达
result=result.replaceAll("零[千百十]", "零");
result=result.replaceAll("亿零+万", "亿零");
result=result.replaceAll("万零+亿", "万亿");
result=result.replaceAll("零+", "零");
result=result.replaceAll("零万", "万");
result=result.replaceAll("零亿", "亿");
result=result.replaceAll("^一十", "十");
result=result.replaceAll("零$", "");
System.out.println(result);
}
//测试
public static void main(String[] args) {
Translate tr=new Translate();
tr.translate("1000");
tr.translate("10000");
tr.translate("1000000001");
tr.translate("1000000000001");
tr.translate("100100010");
}
}