繁体   English   中英

Java扫描仪:输入后如何保持相同的行

[英]Java Scanners: How to keep the same line after an input

我有一小段代码,我不知道如何解决。 就是这个:

System.out.print("y=");
while(!scan.hasNextInt()) scan.next();
m = scan.nextInt();
System.out.print("x+");
while(!scan.hasNextInt()) scan.next();
b = scan.nextInt();

输出为:y = 3一行,x + 4下一行。 我希望他们在同一条线上。 我该怎么做呢?

我不确定您要在那里做什么,但也许您只需要使用一个System.out.print? 在代码底部的示例:

System.out.print("y= %d  x+%d", m , b);

理解您的问题为什么会有点令人困惑。

但是,您可以尝试以下代码片段,看看它是否对您有用!

 import java.io.BufferedReader;
 import java.io.IOException;
 import java.io.InputStreamReader;


 public class so1 {
     public static void main(String[] args) throws IOException {
         BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
         String arrayStr = br.readLine();
         String[] auxStr = arrayStr.split(" ");
         int[] arr = new int[2];

        for(int i=0;i<auxStr.length;i++){
           arr[i]= Integer.parseInt(auxStr[i]);
        }

        System.out.println("y="+arr[0] + " x+"+arr[1]);
  }

}

这是您可以获得的-

3 4
y=3 x+4

如果您觉得问题没有用,请更新您的问题。 我将进行相应的更新。

程序看起来像这样:

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);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM