В консоли есть ли способ остановить запуск Java новой строки при нажатии Enter? - PullRequest
4 голосов
/ 24 января 2012

Например, если пользователь вводит 7 * 4 Я хочу, чтобы он вывел 7 * 4 = 28

Вместо

7 * 4
= 28

Я искал пару часов и ничего не нашел. Спасибо за любую помощь заранее.

public class RecursiveMultiplication 
{
public static void main(String[] args)
{
    Console console = System.console();
    String input[] = new String[2];
    String multiplicand, multiplier;
    int product;

    while(true)
    {
        input = console.readLine("?> ").split("\\D+");
        multiplicand = input[0];
        multiplier = input[1];
        product = multiply(Integer.parseInt(multiplicand), Integer.parseInt(multiplier)); 

        console.printf(" = %d", product);

    }
}

public static int multiply(int multiplicand, int multiplier){
    if(multiplier == 0)
        return 0;
    if(multiplier % 2 == 0)
        return multiplicand + multiplicand + multiply(multiplicand, multiplier - 2);
    return multiplicand + multiply(multiplicand, --multiplier);
}

}

1 Ответ

4 голосов
/ 24 января 2012

Это ограничение консоли, на которой работает Java-программа. Это не легко обойти, но вы можете взглянуть на Java Curses Library . Лично я не думаю, что это стоит хлопот. Вместо этого было бы проще написать Java Swing GUI.

...