如何获取以下内容以打印字符串输入?首先,我插入int
,然后插入double
,然后插入字符串,但代码不返回整个字符串。
import java.util.Scanner;
public class TestScanner {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int i = scan.nextInt();
double d = scan.nextDouble();
String s = scan.next();
System.out.println("String: " + s);
System.out.println("Double: " + d);
System.out.println("Int: " + i);
}
}
这是测试结果。从下面可以看到它打印int和double但不打印字符串。
3
2.5
Hello World
String: Hello
Double: 2.5
Int: 3
答案 0 :(得分:0)
这是因为scan.nextDouble()方法不使用输入的最后一个换行符,因此在下一次调用scan.nextLine()时会消耗该换行符。
为此,在scan.nextDouble()之后调用一个空白的scan.nextLine()来使用该行的其余部分,包括换行符。
这是一个示例代码,可以帮助您了解可能的解决方法:
public class newLineIssue {
public static void main(String args[]) throws InterruptedException {
Scanner scan = new Scanner(System.in);
int i = scan.nextInt();
double d = scan.nextDouble();
scan.nextLine();
String s = scan.nextLine();
System.out.println("String: " + s);
System.out.println("Double: " + d);
System.out.println("Int: " + i);
}
}
我的输出为:
1
22.5
dsfgdsg
String: dsfgdsg
Double: 22.5
Int: 1
答案 1 :(得分:0)
这是示例代码,可帮助您打印String的整个行。
package com.practice;
import java.util.Scanner;
public class Practice {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int i = scan.nextInt(); // Read the Integer data type
double d = scan.nextDouble(); // Read the Double data type
scan.nextLine(); // Read the entire line of String
String s = scan.nextLine();
System.out.println("String: " + s);
System.out.println("Double: " + d);
System.out.println("Int: " + i);
}
}
输入
45
56.24
Hi i am java developer!
输出
String: Hi i am java developer!
Double: 56.24
Int: 45