看起来这是你的程序的外观:
y=3<newline>
x+5<newline>
但你希望它看起来像:
y=3x+5
有问题的换行来使用扫描仪和标准固有的缓冲性质输入。为了让扫描器知道它到达了数字的末尾,必须有空格(空格,换行符等)。为了让程序接收来自STDIN的输入,int的字符长度必须大于缓冲区大小,或者必须按下ENTER键。
TL; DR - 你想要的很难做到,也许根本不可能,只需要使用基本的标准。如果你真的想要你想要的输出,你可能需要找到一个库来与控制台交互,使用它。
然而,如果你重构你的投入,你也许能够得到的东西几乎一样好:
enter intercept: 5<enter>
enter slope: 3<enter>
y=3x+5
您的代码,修改,以产生输出:
System.out.print("enter intercept:");
while(!scan.hasNextInt()) scan.next();
m = scan.nextInt();
System.out.print("enter slope: ");
while(!scan.hasNextInt()) scan.next();
b = scan.nextInt();
System.out.println("y="+m+"x+"+b);
你为什么需要它所以? –
是否有这样的输入 - 3 4? –
tom