może zabrzmi to śmiesznie, bo mój problem pewnie jest błahy do rozwiązania. Polega on na tym, że kiedy chcę przypisać do zmiennych String (wartości są podane przez użytkownika) ciąg znaków który zawiera spację, to w zmiennej znajduje się tylko ciąg do spacji, natomiast spacja i to co się za nią znajduje nie zostaje zapisane do zmiennej. Do pobierania wartości do String używam klasy Scanner
Jeśli chcesz pobrać dokładnie to co wpisuje użytkownik powinieneś pewnie użyć innej metody, albo odpowiedni skonfigurować Scanner.
Niestety Java ma tę cechę, że niepotrzebnie utrudnia rzeczy, które powinny być proste jak budowa cepa. Oczywiście jak ma się doświadczenie, to się na to nie zwraca uwagi, ale dla początkujących jest to frustrujące. Dla porównania w C# jest po prostu Console.ReadLine();
Nie wiem jak w C#, ale w Java jest zasadnicza różnica między Console a Scannerem. Obiekt console nie może zostać pobrany, jeżeli proces Javy nie został uruchomiony w trybie konsolowym/tekstowym tak, że z daną instancją mamy skojarzoną konsolę. Przykładowo jeżeli będziemy póbowali to wywołać z poziomu IDE z pseudoterminala to takowej konsoli nie ma. Metoda System.console(), w takim przypadku zwróci null.
If this virtual machine has a console then it is represented by a unique instance of this class which can be obtained by invoking the System.console() method. If no console device is available then an invocation of that method will return null.
Scanner natomiast nie jest warstwą abstrakcji nad niskopoziomowym API terminal device zależnym od systemu. Jego użycie jest też proste i można wczytać nim całą linię z dowolnego strumienia, np. standardowego wejściam, przykład na ideone: https://ideone.com/SoC7wP
System.out.println("Enter some string: ");
Scanner scanner = new Scanner(System.in);
String string = scanner.nextLine();
System.out.println("This is string: " + string);
Wydaje mi się, że metoda na tej klasie jest dostępna od początku jej istnienia, czyli wersji 1.5