从C的面向过程转向JAVA的面向对象,思维上有点不习惯,郁闷!
1、编写一个程序,实现列出文件夹下所有文件名的功能。
2、给出大整数加减法的实现思路,例如,199999999999999998+333333333333333333333,或者
123444444444447654-999999999999988877。
3、实现将阿拉伯数字的金额转换成中文大写金额的形式,例如:
¥1011 → 壹仟零壹拾壹元整。
大写数字为:零、壹、贰、叁、肆、伍、陆、柒、捌、玖、拾、佰、仟、万、亿
第2题是不是用java.math包的BigInteger类的add()和multiply()方法实现啊?
请各位高手帮帮忙.
1、编写一个程序,实现列出文件夹下所有文件名的功能。
2、给出大整数加减法的实现思路,例如,199999999999999998+333333333333333333333,或者
123444444444447654-999999999999988877。
3、实现将阿拉伯数字的金额转换成中文大写金额的形式,例如:
¥1011 → 壹仟零壹拾壹元整。
大写数字为:零、壹、贰、叁、肆、伍、陆、柒、捌、玖、拾、佰、仟、万、亿
第2题是不是用java.math包的BigInteger类的add()和multiply()方法实现啊?
请各位高手帮帮忙.
解决方案 »
- 怎样能对大文件进行SHA1摘要计算
- 时间格式化
- java.math.BigInteger
- 关于Log4j,文件名的问题
- 求助:jsp页面对<b>无反应
- java程序如何读出word文档中的文本而舍弃非文本信息?
- 有几种对象类型,如:classAa a和classAa a=new classAa()有什么区别,可以new 一个接口对象吗,该如何调用方法??
- 谁肯来这(http://community.csdn.net/Expert/topic/3123/3123671.xml?temp=.8257105)
- 我的程序执行后屏幕上什么都没有,请高手救难!
- 关于Applet中的双缓存,求教!
- Java2中一个关于局部类的一个小问题 帮个忙?
- 请问如何控制线程并发的个数?
第二个问题,可以使用java.math.BigDecimal类的方法来做。
第三个问题,怕是要自己写点循环或递归程序来做了,没见过这样的类库。
*
* @author Trumplet
*/
public class NumberToZH {
static final String zhnum_0 = "零壹贰叁肆伍陆柒捌玖";
static final String zhnum = "零一二三四五六七八九";
static final String[] zhnum1 = {"","十","百","千"};
static final String[] zhnum1_0 = {"","拾","佰","仟"};
static final String[] zhnum2 = {"","万","亿","万亿","亿亿"};
/** Creates a new instance of NumberToZH */
public NumberToZH() {
}
private static String numberToZH4(String s,boolean fan){
StringBuffer sb = new StringBuffer();
if (s.length()!=4) return null;
for (int i=0;i<4;i++){
char c1 = s.charAt(i);
if (c1=='0' && i>1 && s.charAt(i-1)=='0') continue;
if (c1!='0' && i>1 && s.charAt(i-1)=='0') sb.append('零');
if (c1!='0') {
if (fan) {
sb.append(zhnum_0.charAt(c1-48));
sb.append(zhnum1_0[4-i-1]);
} else {
sb.append(zhnum.charAt(c1-48));
sb.append(zhnum1[4-i-1]);
}
}
}
return new String(sb);
}
public static String numberToZH(long n,boolean fan){
StringBuffer sb = new StringBuffer();
String strN = "000"+n;
int strN_L = strN.length()/4;
strN = strN.substring(strN.length()-strN_L*4);
for (int i=0;i<strN_L;i++){
String s1 = strN.substring(i*4,i*4+4);
String s2 = numberToZH4(s1,fan);
sb.append(s2);
if(s2.length()!=0) sb.append(zhnum2[strN_L-i-1]);
}
String s = new String(sb);
if (s.length()!=0 && s.startsWith("零"))
s = s.substring(1);
return s;
}
public static String numberToZH(double d,boolean fan){
return numberToZH("" + d,fan);
}
public static String numberToZH(String str,boolean fan){
StringBuffer sb = new StringBuffer();
int dot = str.indexOf(".");
if (dot<0) dot=str.length();
String zhengshu = str.substring(0,dot);
sb.append(numberToZH(Long.parseLong(zhengshu),fan));
if (dot!=str.length()){
sb.append("点");
String xiaoshu = str.substring(dot+1);
for (int i=0;i<xiaoshu.length();i++){
if(fan){
sb.append(zhnum_0.charAt(Integer.parseInt(xiaoshu.substring(i,i+1))));
} else {
sb.append(zhnum.charAt(Integer.parseInt(xiaoshu.substring(i,i+1))));
}
}
}
String s = new String(sb);
if (s.startsWith("零")) s = s.substring(1);
if (s.startsWith("一十")) s = s.substring(1);
while (s.endsWith("零")){s = s.substring(0,s.length()-1);}
if (s.endsWith("点")) s = s.substring(0,s.length()-1);
return s;
}
public static String numberToRMB(double rmb){
String strRMB = "" + rmb;
DecimalFormat nf = new DecimalFormat("#.#");
nf.setMaximumFractionDigits(2);
strRMB=nf.format(rmb).toString();
strRMB=numberToZH(strRMB,true);
if (strRMB.indexOf("点")>=0){
strRMB = strRMB + "零";
strRMB = strRMB.replaceAll("点","圆");
String s1 = strRMB.substring(0,strRMB.indexOf("圆")+1);
String s2 = strRMB.substring(strRMB.indexOf("圆")+1);
strRMB=s1 + s2.charAt(0) + "角" + s2.charAt(1) + "分整";
}else {
strRMB=strRMB+"圆整";
}
return "人民币(大写):" + strRMB;
}
public static void main(String[] args) {
System.out.println(numberToRMB(342345.96));
}
}
-----------------------------------------------
人民币(大写):叁拾肆万贰仟叁佰肆拾伍圆玖角陆分整
public static void main(String[] args) {
File path = new File(".");
String[] list;
list = path.list();
for(int i = 0; i < list.length; i++)
System.out.println(list[i]);
}
}
列出当前目录下所有文件的例子,请各位大侠斧正
123444444444447654-999999999999988877。这个问题不是叫你去调用 BigDecimal的方法, 如果是这样,那还要做吗
而是叫你实现自己的 BigDecimal ,但只要实现 加, 减 方法而已
第2题实现自己的 BigDecimal,这是什么意思啊?难道自己写加减的方法?