我不确定我到底有多接近,但我必须使用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;因为它不是我想要的(我有一个白痴时刻)。我要打印的是第二种方法中弹出的结果。我希望能够打印用户输入的数字的二进制文件。
答案 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));
}