使用堆栈的Java 10 Base - Base 2转换器

时间:2015-02-05 00:08:57

标签: java binary stack base

我不确定我到底有多接近,但我必须使用Stack在Java中创建一个程序。我完成了Stack类,现在唯一给我问题的是Converter类。编译时我得到以下内容:

Base10Converter.java:13: cannot find symbol
symbol  : variable rand
location: class Base10Converter

System.out.println(outputInBinary());
                                                      ^
1 error

我知道它不应该是" rand,"所以这只是一个占位符。需要帮助!

import java.util.Scanner;
public class Base10Converter
{
    public  static void Main(String args[])
    {
        Scanner scan = new Scanner(System.in);
        System.out.println("Please enter your base10 number: ");
        String in = scan.nextLine(); //read the value
        for (int x = 0; x < in.length(); x++)
        {
                if (in.charAt(x) >= 0 && in.charAt(x) <= 9)
                {
                        System.out.println(outputInBinary(rand));
                }
                else
                {
                System.out.println("Invalid Number! 0 - 9. No letters.");
                }
        }
    }//main

    public static void outputInBinary(int in)
    {
        CharStack cStack = new CharStack();
        while(in > 0)
        {
            int bit = in % 2;
            cStack.push((char)(bit + 48));
            if (cStack.isFull())
            {
                System.out.println("Stack is full!");
            }
            in = in/2;
        }
        while (!cStack.isEmpty())
        {
            System.out.println(cStack.pop());
        }
    }//ouputInBinary

}
编辑:我采取了#34; rand&#34;因为它不是我想要的(我有一个白痴时刻)。我要打印的是第二种方法中弹出的结果。我希望能够打印用户输入的数字的二进制文件。

3 个答案:

答案 0 :(得分:0)

您要做的是打印出一份无效声明。 而不是System.out.print(outputInBinary(int in));

outputInBinary((int)(Math.random()*100));

答案 1 :(得分:0)

使用随机对象生成1和100之间的随机数,例如:

Random random = new Random();
rand = random.nextInt(100) + 1;

答案 2 :(得分:0)

您不需要阅读下一行,nextInt更适合此处:

private static int readInt(Scanner scan) {
    while (!scan.hasNextInt()) {
        scan.next();
        System.out.println("Invalid Number! 0 - 9. No letters.");
    }
    return scan.nextInt();
}

public  static void main(String args[])
{
    Scanner scan = new Scanner(System.in);
    System.out.println("Please enter your base10 number: ");
    outputInBinary(readInt(scan));
}