1 / 6
Oct 2017

Dobry wieczór chciałbym zapytać, czy może ktoś wie gdzie znajdę jakieś informację (tutorial, opis), w jaki sposób w JAVIE mogę wprowadzić nie określoną liczbę danych ??? (do tej pory za pomocą Scanera i jakiejś zmiennej , określałem ilość danych , które wprowadzałem następnie do programu, teraz mam problem ).

  • created

    Oct '17
  • last reply

    Oct '17
  • 5

    replies

  • 1.7k

    views

  • 2

    users

  • 4

    links

Wszystko było na starym forum… Muszę się podpytać adminów jak wygląda status wyciągania z niego danych. Póki co coś takiego powinno dać radę:

import java.io.*;

/* Name of the class has to be "Main" only if the class is public. */
class Ideone
{
	public static void main (String[] args) throws java.lang.Exception
	{
		BufferedReader r = new BufferedReader (new InputStreamReader (System.in));
		String s;
		while ((s=r.readLine())!=null) System.out.println(s);
	}
}

A czy ten "wzór " dotyczy także liczb (intów) ??? Ponieważ chodziło mi o liczby , także wczytam kilka liczb , i potem będę na nich działał… Temat założyłem ponieważ napotkałem zadania suma w którym muszę właśnie wczytać nieokreśloną liczbę testów (w c++ było to proste, za pomocą pętli while(cin>>x) .

Tak, działa z itami, po prostu rzutuj na inta to co wczytasz. Ewentualnie zobacz specyfikacje BufferedReadera czy nie ma metody do wczytywania liczb.

No tak, dla inta jest funkcja read() :), ale problem jest z whilem… tzn.

while ((s=r.read())!=null) … null jest już błędem jeśli chodzi o int :confused: , więc czym to zastąpić mógłbym ?

https://www.tutorialspoint.com/java/io/bufferedreader_read_char.htm17

Read wczytuje jeden znak z wejścia. Musiałbyś napisać != -1 zgodnie z dokumentacją.

Masz takie opcje

1.Scanner i metoda scanner.hasNext() + nextInt() do odczytu, ale to będzie dość wolne:

if (scanner.hasNextInt()) {
    System.out.println(scanner.nextInt());
}

2.Użycie readLine() + split + parsowane. Czyli jak w moim pierwszym przykładzie i

String[] splited = s.split("\\s+");
// iterowanie po tablicy splited i konwersja elementów na int

3.Użycie read() i napisanie włąsnego parsera, dla wejścia wczytanego znak po znaku

Suggested Topics

Want to read more? Browse other topics in Tutoriale, poradniki or view latest topics.