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