2015-02-05 5 views
0

Я не уверен, насколько я близок к концу, но мне нужно создать программу на Java, используя Stack. У меня есть класс Stack, и теперь единственное, что дает мне проблемы, это класс Converter. Я получаю следующее, когда я компилирую:Base 10 - Base 2 Converter в Java с использованием стека

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

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

Я знаю, что это не должно быть «рант», так что это просто место держатель. Нужна помощь!

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 

} 

EDIT: Я взял «ранд», поскольку это не то, что я хотел (я был идиотом момент). То, что я хочу распечатать, - это результат формы pop во втором методе. Я хочу иметь возможность печатать двоичный номер введенного пользователем номера.

+0

Каков диапазон случайного числа, которое вы хотите? –

+0

Почему вы не используете [nextInt] (http://docs.oracle.com/javase/8/docs/api/java/util/Scanner.html#nextInt--) – lifus

ответ

0

Что вы пытаетесь сделать, это распечатать инструкцию void. Вместо System.out.print(outputInBinary(int in)); к

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

Используйте случайный объект, чтобы сгенерировать случайное число от 1 до 100, например:

Random random = new Random(); 
rand = random.nextInt(100) + 1; 
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)); 
} 
Смежные вопросы