#java #java.util.scanner
#java #java.util.scanner
Вопрос:
У меня есть два класса. Класс A предлагает пользователю ввести число 9 раз с помощью Scanner (System.in ). Класс B реализует класс A.
Как я могу автоматизировать ответы для класса A при запуске класса B. Например, когда я запускаю класс B, как я могу заставить компьютер отвечать цифрой «3» каждый раз, когда класс A запрашивает меня ввести число?
public class A {
private Scanner scan;
public A() throws FileNotFoundException{
scan = new Scanner(System.in);
for(int i=1;i<=9;i ){
System.out.println("Enter #");
int num = scan.nextInt();
}
}
}
public class B{
public B(){
A runA = new A();
}
public static void main(String[] args) {
B runB = new B();
}
}
Комментарии:
1. Пожалуйста, покажите свой код. Невозможно правильно ответить на ваш вопрос, не угадав.
2. Вы уверены, что
B
следует реализовать (я полагаю, вы имели в виду extends ) классA
? Для меня это не имеет особого смысла. Или вы просто имели в виду использование ?3. Получаете ли вы входные данные с помощью
nextLine()
? Поместите знакSystem.out.println("3")
выше или ниже строки с надписьюScanner.nextLine()
в зависимости от того, хотите ли вы отобразить его до или после ввода. Это должно быть сделано в классе A. Если вы хотите, чтобы это было сделано в классе B, вам придется предпринять дополнительные шаги. Однако вы должны предоставить некоторый код.4. Запись @Kars в
System.out
не заполняетсяSystem.in
. Насколько я понял, OP хочет, чтобы егоnextLine
вызов считывал пользовательский ввод, установленный изB
, вместо запроса пользователя.5. @Zabuza это мое лучшее предположение, судя по тому, что у него есть
System.out.println
в названии.
Ответ №1:
Я бы рекомендовал использовать функцию класса A для получения входных данных один за другим. Затем из класса B выведите строку перед вызовом метода. Как таковой:
public class A {
private Scanner scan;
public A() throws FileNotFoundException {
scan = new Scanner(System.in);
}
public void getInput() {
System.out.println("Enter #");
int num = scan.nextInt();
}
}
public class B {
public B() {
A runA = new A();
for(int i=1;i<=9;i ) {
System.out.println("3");
runA.getInput();
}
}
public static void main(String[] args) {
B runB = new B();
}
}
Это должно быть то, что вы хотите.
Либо это, либо вы можете напечатать строку выше, где написано scan.nextInt();
в вашем коде.