我试图通过Hackerrank学习Java,而我目前正在进行的挑战是采用int,double和string,然后以相反的顺序将它们打印在不同的行上,但我还没有。能够得到要打印的字符串。
import java.util.Scanner;
public class Solution {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
int x=sc.nextInt();
double y=sc.nextDouble();
String s=sc.nextLine();
System.out.println("String: "+s);
System.out.println("Double: "+y);
System.out.println("Int: "+x);
}
}
输入是:
42
3.1415
Welcome to Hackerrank Java tutorials!
输出是:
String:
Double: 3.1415
Int: 42
我根本不了解Java,但从我在网上看过的代码中,我无法说明为什么这是错误的。
答案 0 :(得分:2)
将代码的第一部分更改为:
Scanner sc = new Scanner(System.in);
int x = sc.nextInt();
double y = sc.nextDouble();
sc.nextLine(); // Discard rest of current line
String s = sc.nextLine();
java.util.Scanner
将输入分成数字或行的方式有点奇怪。
答案 1 :(得分:-1)
sc.nextLine();
应改为sc.next();