Невозможно вернуть результат из System.in InputStreamReader
У меня проблемы просто вернуть строку цвета. По какой-то причине он не вернет число. Не уверен, что мне нужно вставить конец оператора if с помощью else, но я чувствую, что оператор catch для if.
Основной класс
package edu.computer.test;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Computer {
public Computer() {
}
public String getProcessor() {
InputStreamReader in = new InputStreamReader(System.in);
BufferedReader keyboard = new BufferedReader(in);
String num = null;
System.out.println("Type red to print red or blue to print blue");
try {
num = keyboard.readLine();
if (num.equals("red"))
num = "red";
if (num.equals("blue"))
num = "blue";
} catch (IOException e) {
System.out.println("Exception occured!");
}
return num;
}
}
Тестовый класс
package edu.computer.test;
public class ComputerTester {
public static void main(String[] args) {
Computer a = new Computer();
a.getProcessor();
}
}
1 ответ
Решение
Ваш пример кода работает просто отлично. Я добавил следующую строку в ваш тест, и он напечатал цвет, как и ожидалось:
public static void main(String[] args) {
Computer a = new Computer();
System.out.println(a.getProcessor());
}
Печать blue
или же red
по мере необходимости.