Как прочитать пространство перед строкой с помощью сканера в Java?
import java.util.Scanner;
import java.io.*;
public class Solution {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
int x=sc.nextInt();
Double y= sc.nextDouble();
Scanner sc1=new Scanner(System.in);
String name = sc1.nextLine();
System.out.println("String: "+name);
System.out.println("Double: "+y);
System.out.println("Int: "+x);
}
}
вход: (перед 'RAM' есть 5 пробелов)
343434343
343.434343
ram sdf
Ожидаемый результат: (до 'RAM' есть 5 пробелов)
ram sdf
343.434343
343434343
1 ответ
Вам не нужно создавать два сканера. Также вам нужно будет сделать nextLine()
как только вы прочитаете двойник.
Вот исправленный фрагмент кода:
public static void main (String[] args) throws Exception {
Scanner sc = new Scanner(System.in);
int x = sc.nextInt();
Double y = sc.nextDouble();
/* Note the change here */
sc.nextLine();
String name = sc.nextLine();
System.out.println("String: " + name);
System.out.println("Double: " + y);
System.out.println("Int: " + x);
}
Выход:
String: ram sdf
Double: 343.434343
Int: 343