scan.nextLine();

Odpowiedz Nowy wątek
2018-10-31 15:26
0

Czesc mam taki kod, jako poczatkujacy w javie (w c++ nie bylo czegos takiego raczej), chodzi mi dlaczego daje sie scan.nextLine(); przed pobieraniem danych Stringa a przed doublem albo inta juz nie. Zadanie https://www.hackerrank.com/challenges/java-stdin-stdout/problem

``

import java.util.Scanner;

public class Solution {

public static void main(String[] args) {

    Scanner scan = new Scanner(System.in);
    int i = scan.nextInt();
    double d = scan.nextDouble();
    scan.nextLine();
    String s = scan.nextLine();

    // Write your code here.

    System.out.println("String: " + s);
    System.out.println("Double: " + d);
    System.out.println("Int: " + i);
}

}
``

edytowany 1x, ostatnio: Adam “Ironma”, 2018-10-31 15:27

Pozostało 580 znaków

2018-10-31 15:52

Dlatego że w int i double pobierasz po jednej wartości a w string - scan.nextLine() - całe zdanie, jeśli chcesz jedno słowo to bierzesz scan.next()

Pozostało 580 znaków

2018-10-31 17:57
Skromny Terrorysta
1
tomanhez napisał(a):

Dlatego że w int i double pobierasz po jednej wartości a w string - scan.nextLine() - całe zdanie, jeśli chcesz jedno słowo to bierzesz scan.next()

scan.nextLine();
    String s = scan.nextLine();

Mu chodzi o te pierwsze scan.nextLine() :)

Pozostało 580 znaków

2018-11-01 14:48
0
Adam “Ironma” napisał(a):

chodzi mi dlaczego daje sie scan.nextLine(); przed pobieraniem danych Stringa a przed doublem albo inta juz nie.

To nie tak że dajesz nextLine() przed pobraniem danych Stringa, dajesz nextLine() PO pobraniu liczby przez np nextInt(), z tego względu że nie wczytują one entera. Jeśli tego nie zrobisz Twoja zmienna "s" będzie przechowywać znak nowej linii pozostały po wczytywaniu liczby.

https://stackoverflow.com/que[...]e-after-using-next-or-nextfoo

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0