int 是有界限的,要算大数字可以学习一下BigInteger类,一般情况下再大都不怕

解决方案 »

  1.   

    你得读入一个字符串,而不是Integer整数对象,他会忽略0
    你只需要改两句Integer p=Integer.parseInt(br.readLine());改成
    String p = br.readLine();
    然后顺便把你的quchu函数参数类型改成String类型
    package pk;import java.io.*;
    import java.util.*;public class 从键盘接受一个数字列出该数字的中文表示格式 {
    public static void main(String[] args) throws Exception {
    chuancan();
    } public static void chuancan() throws Exception {
    BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
    String p = br.readLine(); quchu(p);
    } public static void quchu(String p) {
    // String g=p.toString();
    String[] str = new String[] { "零", "一", "二", "三", "四", "五", "六", "七",
    "八", "九" };
    StringBuilder sb = new StringBuilder();
    sb.append(p);
    for (int i = 0; i < sb.length(); i++) {
    // Integer.parseInt( sop(sb.substring(i,
    // i+1));//Integer.parseInt()这里不能放sop()函数,自找麻烦。
    // String r= sop(sb.substring(i, i+1)).toString();
    // System.out.print(sb.substring(i, i+1))
    int t = Integer.parseInt(sb.substring(i, i + 1));
    sop(str[t]);
    }
    } public static void sop(Object obj) {
    System.out.print(obj);
    }
    }