繁体   English   中英

输入后如何使扫描仪停留在同一行?

[英]How to make a Scanner stay on the same line after input?

因此,基本上我想在几分钟和几秒钟内问一个时间。 我想知道是否有办法让它停留在同一行上,而只是在两者之间加一个冒号,而不是让用户在两条单独的行中输入答案。

这就是我所拥有的:

'Scanner input = new Scanner (System.in);
 System.out.print ("Enter Minutes: ");
 int min = input.nextInt();
 System.out.print ("Enter Seconds: ");
 int sec = input.nextInt()'

然后输出将如下所示:

 Enter Minutes: 2
 Enter Seconds: 12

我希望它看起来像这样:

 Enter Time: 2:12

我猜我没有办法做到这一点,但是如果有人有任何建议,我将不胜感激。 谢谢。

首先,您询问用户时间。

System.out.print ("Enter Time: ");
String time = input.nextString();
String time = "2:12";

然后,使用拆分功能拆分时间,并使用冒号作为分隔符。

String[] parts = time.split(":");

这样做将导致两个字符串。

String time = parts[0]; // 2
String minutes = parts[1]; //12

为此,我们可以通过将InputStreamReader对象包装在BufferedReader对象中来读入用户的输入String。

然后,我们使用BufferedReader的readLine()方法读取输入的String,即两个由空格分隔的整数。 可以使用String.split()方法将它们解析为两个单独的字符串,然后可以使用如上面建议的parseInt方法将它们的值分配给a和b。

(我们可能还希望验证用户输入,以确保其为所需的格式,但此处未解决该问题。)

首先,请记住为Reader对象导入java.io. *。 readLine()方法将引发IOException,因此Main方法可以如下所示:

public static void main(String[] args) throws IOException 
{ 
BufferedReader in = new BufferedReader( 
new InputStreamReader( 
System.in));

String[] input = new String[2]; 
int a; 
int b;

System.out.print("Please enter two integers: "); 
input = in.readLine().split(" ");

a = Integer.parseInt(input[0]); 
b = Integer.parseInt(input[1]);

System.out.println("You input: " + a + " and " + b); 
}

- - - - - - - 附加信息 - - - - - - -

我忘记了Scanner对象。 这可以使事情变得简单得多。 而不是导入Reader对象,我们导入java.util.Scanner

Scanner对象可以直接解析用户输入,因此我们不必拆分字符串或使用parseInt。 另外,我们不必担心捕获IOException。 并且,用户可以根据需要在同一行或什至在不同行上输入两个整数。

使用Scanner对象,我们更简单的主要功能可以如下所示:

public static void main(String[] args) 
{ 
System.out.print("Please enter two integers: ");

Scanner sc = new Scanner(System.in);

int a = sc.nextInt(); 
int b = sc.nextInt();

System.out.println("You input: " + a + " and " + b); 
}

暂无
暂无

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

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