Питання Сканування декількох рядків за допомогою одного об'єкта сканера


Я новачок у java, тому, будь ласка, не ставте вниз, якщо це звучить абсолютно німим для вас

Гаразд, як це зробити, використовуючи один об'єкт сканера

5

привіт як ти робиш

Ласкаво просимо в мій світ

6 7

для тих з вас, хто пропонує

scannerobj.nextInt->nextLine->nextLine->nextInt->nextInt,,,

перевірте це, це не працює !!!

Дякую


10
2018-04-08 07:00


походження


це працює з scannerobj.nextInt->nextLine->nextLine->nextInt->nextLine->nextInt->nextLine.. Перевір! - Baby
Будь ласка, поділіться своїм кодом. - Braj
будь ласка, дайте загальну відповідь, сенс якої може бути використаний на будь-якому наборі декількох рядків !!! - Creative_Cimmons
Замість цього створіть окремий метод друку значення та напишіть там код сканера. а потім виклик методу в циклі та ваші дані - Harshal Patil
@RafaEl, якщо він працює, якщо і тільки якщо ви додасте додаткову лінію для входу частини - Creative_Cimmons


Відповіді:


public static void main(String[] args) {
    Scanner  in    = new Scanner(System.in);

    System.out.printf("Please specify how many lines you want to enter: ");        
    String[] input = new String[in.nextInt()];
    in.nextLine(); //consuming the <enter> from input above

    for (int i = 0; i < input.length; i++) {
        input[i] = in.nextLine();
    }

    System.out.printf("\nYour input:\n");
    for (String s : input) {
        System.out.println(s);
    }
}

Зразок виконання:

Please specify how many lines you want to enter: 3
Line1
Line2
Line3

Your input:
Line1
Line2
Line3

18
2018-04-08 07:06



як, я пропустив nextLine для входу в частину !!! - Creative_Cimmons
Спасибі, плюс один для цієї лінії in.nextLine(); //consuming the <enter> from input above - Prashanth kumar


public class Sol{

    public static void main(String[] args) {

        Scanner sc = new Scanner(System.in); 

       while(sc.hasNextLine()){

           System.out.println(sc.nextLine());
       }

    }
}

1
2018-05-03 06:32





спробуйте цей код

Scanner  in    = new Scanner(System.in);

System.out.printf("xxxxxxxxxxxxxxx ");        
String[] input = new String[in.nextInt()];

for (int i = 0; i < input.length; i++) {
    input[i] = in.nextLine();
}

for (String s : input) {
    System.out.println(s);
}

0
2018-04-08 07:08



Це не буде працювати належним чином, тому що in.nextInt() споживає значення int, але не розрив рядка. Таким чином, ваша перша ітерація для циклу миттєво записує цей лінійний гальмо у ваш вхід [0]. - ifloop


Ви також можете спробувати лише з лямбда:

public static void main(String[] args) {
    Scanner scanner = new Scanner(System.in);
    scanner.forEachRemaining(input -> System.out.println(input));
}

0
2017-08-07 06:48