Как прочитать пространство перед строкой с помощью сканера в 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
Другие вопросы по тегам