[英]How to make a second input fall in the same line after a first output?
[英]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.