因为你main方法打印的hex字符串就是null。。
我估计你输入的是个整数,调用的public String jzzh(int a),你定义了局部变量String ch=null,你只写了if条件,刚好你输入的这个数字不满足任何一个if块,所以程序走到了return ch这了,得到的是null,你打印的自然就是null了。
建议你按照Java代码书写规范写代码,那样更加清晰,类名首字母
写,方法名小写。。等等。

解决方案 »

  1.   

    import java.util.Scanner;public class jinzhi
    {
    public static void main(String[] agrs)
    {
    jzzh x = new jzzh();
    Scanner in = new Scanner(System.in);
    String hex;
    int a = in.nextInt();
    hex = x.jzzh(a);
    System.out.println(hex);
    }
    }class jzzh
    { public char zfzh(int a)
    {
    if (a >= 0 && a < 10)
    {
    return ((char) (a + '0'));

    else
    {
    return ((char) (a - 10 + 'a'));
    }
    } public String jzzh(int a)
    {
    String ch = null;
    while (a >= 16)
    {
    int b;
    b = a % 16;
    //ch = zfzh(b)+ch;
    ch = String.valueOf(zfzh(b));     //把上面那局换为这句;
    ch = ch.trim();
    a = a / 16;
    if (a == 0)
    {
    break;
    }
    if (a > 0 && a < 16)
    { ch = zfzh(a) + ch;
    }
    } return ch;
    }
    }
      

  2.   

    因为他的这句:ch = zfzh(b)+ch;