我正在尝试解决字符串连接中的问题但我不明白为什么它只给我这样的输出,而我正在使用“+”运算符。任何人都可以帮我澄清我的问题是什么。我的代码是
public static void main(String[] args) {
int a;
double b;
String c;
Scanner sc=new Scanner(System.in);
a=sc.nextInt();
b=sc.nextDouble();
c=sc.nextLine();
System.out.println(a+4);
System.out.println(b+4.0);
System.out.println("Hackerrank"+" "+c);
}
我的输入是:
12
4.0
是学习和练习编码的最佳场所!
我的输出是:
16
8.0
黑客等级
但预期输出是:
16
8.0
HackerRank 是学习和练习编码的最佳场所!
问题不在于串联。是线c=sc.nextLine();
。当您使用c=sc.nextLine();
JVM 时,会b=sc.nextDouble();
在行中但在双精度值之后分配值。
示例:根据您的输入,
12
4.0 [
c=sc.nextLine();
行读取此部分。就在双输入之后]是学习和练习编码的最佳场所!
所以试试这个代码。它跳过了上面提到的那一行。
public static void main(String[] args) {
int a;
double b;
String c;
Scanner sc=new Scanner(System.in);
a=sc.nextInt();
b=sc.nextDouble();
sc.nextLine(); // This line skips the part, after the double value.
c=sc.nextLine();
System.out.println(a+4);
System.out.println(b+4.0);
System.out.println("Hackerrank"+" "+c);
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句