@yras8: Wpisując "KOT" tak naprawdę wpisujesz "KOT\n" gdzie \n jest znakiem nowej linii. Po wykonaniu scanner.next() pobierasz pierwszy napis aż do napotkania białego znaku, więc do zmiennej a przypisany zostaje "KOT" a w buforze skannera zostaje "\n". Gdy następnie wykonasz scanner.nextLine() zostaje wczytane wszystko do pierwszego napotkanego znaku nowej linii, czyli pobierasz "" a w skanerze już nic nie zostaje. Gdybyś zamiast KOT wpisał KOT MRUCZEK wypisałoby obydwa słowa.
@yras8: W przybliżeniu dlatego że tak działa konsola. Po wpisaniu tekstu naciskasz enter, który zarówno dodaje znacznik nowej linii i przesyła to co wpisałeś do programu.
fun main() {
val scanner = Scanner(System.
in)val a = scanner.next()
val c = scanner.nextLine()
println(a)
println(c)
}
#kotlin #java
Dlaczego nie czyta mi w konsoli val c? tylko po wpisaniu np. KOT odrazu printuje pierwszą wartość i nie mogę wpisać drugiej do konsoli?
Po wykonaniu scanner.next() pobierasz pierwszy napis aż do napotkania białego znaku, więc do zmiennej a przypisany zostaje "KOT" a w buforze skannera zostaje "\n".
Gdy następnie wykonasz scanner.nextLine() zostaje wczytane wszystko do pierwszego napotkanego znaku nowej linii, czyli pobierasz "" a w skanerze już nic nie zostaje. Gdybyś zamiast KOT wpisał KOT MRUCZEK wypisałoby obydwa słowa.