为什么输出不了结果,是哪里出了问题,应该如何修改


package pat;

import java.util.Scanner;

public class _1002 {
    public static void main(String[] args) {
        Scanner in=new Scanner(System.in);
        int sum=0;
        int x=0,k=0;
        String s=in.nextLine();
        char[] n=s.toCharArray();
        String [] b=new String[]{"yi","er","san","si","wu","liu","qi","ba","jiu"};//利用数组存储一到九
        //toCharArray将字符串转换为字符数组,toCharArray是将String对象的每一个下标位的对象保存在char[]中,
        //比如:String a = "abcd"; char[] b = a.toCharArray(); 这个b保存的信息就是['a','b','c','d']。
        for (int i=0;i< n.length;i++)
        {
            sum=sum+n[i]-'0';
        }
        x=sum;
        int []a=new int[100];
        while (x>0)
        {
            a[k]=x%10;
            x=x/10;
            k++;
        }
        for (int j = a.length; j >0 ; j--)
        {

            System.out.print(b[a[j]-1]+" ");//b数组的索引就是对应数字的拼音字母
        }
        System.out.print(b[a[a.length]-1]);

    }
}

img

img

public static void main(String[] args) {
    String[] num_str = new String[]{"gnil", "iy", "re", "nas", "is", "uw", "uil", "iq", "ab", "uij"};//利用数组存储一到九
    Scanner in = new Scanner(System.in);
    String num = in.next();
    int sum = 0;
    for (int i = 0; i < num.length(); i++) {
        sum += Integer.parseInt(String.valueOf(num.charAt(i)));
    }
    int pos = 0;
    int[] nums = new int[String.valueOf(sum).length()];
    while(sum > 0) {
        nums[pos] = sum % 10;
        sum /= 10;
        pos++;
    }
    StringBuilder out_str = new StringBuilder();
    for (int i : nums) {
        out_str.append(num_str[i]).append(" ");
    }
    out_str = new StringBuilder(out_str.substring(0, out_str.length() - 1));
    out_str = out_str.reverse();
    System.out.println(out_str);
}