Java方法参数编译错误

时间:2015-03-06 19:54:54

标签: java

所以我们必须创建一个程序,将一个十进制数转换为一个二进制数,一次转换为十六进制数,以及一个单独的主方法类。转换类工作正常,但是当我编译我的主方法类时,它说我的扫描仪没有参数。任何帮助将不胜感激

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();
    }
}

1 个答案:

答案 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();