所以我们必须创建一个程序,将一个十进制数转换为一个二进制数,一次转换为十六进制数,以及一个单独的主方法类。转换类工作正常,但是当我编译我的主方法类时,它说我的扫描仪没有参数。任何帮助将不胜感激
import java.util.*;
public class decimalConversion
{
public void D2B(Scanner scan)
{
Scanner n = new Scanner(System.in);
Stack<Integer> stack = new Stack<Integer>();
System.out.println("Enter a positive number to convert to binary ");
int num = scan.nextInt();
while(num != 0)
{
int binary = num%2;
stack.push(binary);
num /= 2;
}
System.out.print("binary is: ");
while(!(stack.isEmpty() ))
{
System.out.println(stack.pop());
}
}
public String D2H()
{
Scanner input = new Scanner( System.in );
System.out.print("Enter a positive number to convert to hexadecimal ");
int num =input.nextInt();
int rem;
String str2="";
char hex[]={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};
while(num>0)
{
rem=num%16;
str2=hex[rem]+str2;
num=num/16;
}
return ("hexadecimal is : "+str2);
}
}
这是主要方法:
import java.util.*;
public class tester
{
public static void main(String[] args)
{
decimalConversion obj = new decimalConversion();
obj.D2B();
obj.D2H();
}
}
答案 0 :(得分:1)
在您对D2B的定义中,您有
public void D2B(Scanner scan)
{
...
}
这告诉java当你调用D2B时,你将传递一个创建的扫描器。 Java期待:
Scanner s = new Scanner();
D2B(s);
在D2B的定义中取出扫描仪,或者将它传递给扫描仪,它应该可以工作。在D2B中您需要做的就是删除定义中的扫描仪扫描并更改
int num = scan.nextInt();
到
int num = n.nextInt();