Wyświetlanie tekstu w konsoli
Spis treści
Zadanie
Napisz program, który wyświetli w 3 kolejnych liniach trzy imiona: Ania, Bartek, Kasia.
Rozwiązanie poniżej ↓ Nie zaglądaj przed samodzielną próbą rozwiązania!
Rozwiązanie
W celu wyświetlenie 3 kolejnych linii tekstu powinniśmy skorzystać 3 razy z funkcji println().
public class Hello {
public static void main(String[] args) {
System.out.println("Ania");
System.out.println("Bartek");
System.out.println("Kasia");
}
}
Drugie rozwiązanie tego samego problemu: przez dodanie znaku nowej linii, po każdym ze słów. Oba rozwiązania są poprawne, w przypadku dłuższych tekstów lepiej stosować znak **"\n",**a w naszym przykładzie jednak polecam 1 rozwiązanie, ponieważ jest czytelniejsze.
public class Hello {
public static void main(String[] args) {
System.out.println("Ania\nBartek\nKasia");
}
}
Dyskusja i komentarze
Masz pytania do tego wpisu? Może chcesz się podzielić spostrzeżeniami? Zapraszamy dyskusji na naszej grupie na Facebooku.
Poniżej znajdziesz archiwalne wpisy z czasów, gdy strona była jeszcze hobbystycznym blogiem.
Patrycjusz
Czy nie ma tu znaczenia to ze w pierwszym są trzy stringi a w drugim tylko jeden ? tzn. mam na myśli to że można jakoś wykorzystać z osobna stringi "Ania" "Bartek" "Kasia" a w drugim nie bo są w jednym stringu. Pewnie moje pytanie może byc trochę niezrozumiale bo jestem świeży TOTALNIE :-)
lllll
nie
Slawek
Nie ma znaczenia. W lekcji o zmiennych dowiesz się, że gdybyśmy te trzy Stringi przypisali do zmiennych, to wtedy moglibyśmy je dalej wykorzystywać. W tym przykładzie są one tylko wyświetlane i dalej już program nic o nich nie wie.
Adam
u mnie niestety wg rozwiązania o którym Pan pisze wyświetliło: AniaBartekKasia natomiast gdy kod napisałem tak: System.out.print("Ania"+'\n'); System.out.print("Bartek"+'\n'); System.out.print("Kasia"+'\n'); to wyświetliło poprawnie każde imię w oddzielnej linii Ania Bartek Kasia być może coś skopałem, nie wiem .....
chrish
Poza tym nie "print" a "println". Wszystko dobrze kompiluje.
Slawek
print() też jest ok, bo kolega dodał na końcu znak nowej linii "\n" co jest równoważne z użyciem właśnie println (skrót od print+line).
Witek
Źle masz wpisany sposób wyświetlenia czyli to: „System.out.print(„Ania”+’\n’); próbujesz wyświetlić String i stalą i dlatego dostajesz taki wynik na konsoli, powinno być tak System.out.print(„Ania \n ”);
Edek
System.out.print("Ania"+"\n") jest równoznaczne dla "Ania 'n", poczytaj wiecej o znakach konkatenacji (łączenia)
Bartłomiej
Panie Sławku, jest pan fenomenalny ;). Choć mam 13 lat, chłonę tą wiedzę jak gąbka - świetnie pan uczy :]. Programik Imiona.java napisałem zerkając może raz, czy dwa na kod Hello.java :]. Padam do stóp!
Bartłomiej
A z mojej strony polecam wpisać: System.out.print("Ania \n Bartek \n Kasia"); Mnie zadziałało za pierwszym razem bez zarzutu :]
Lindorm55
Jaki pech żle nazwałem plik nazwałem go "Imiona1.java" Gdy powinno być po prostu "Imiona". Bardzo fajny kurs. :)
XTR
Witam, a co zrobić jeśli faktycznie chciałbym żeby string brzmiał "cośtam cośtam \n". Innymi słowy: co trzeba napisać aby symbol \n nie był zamieniany na nową linie ale pozostał tekstem
nmts
Poprzedź \n dodatkowym ukośnikiem \. Słowo klucz: escape(owanie).
bolik
System.out.println ("Ania"+'\n'+"Bartek"+'\n'+"Kasia"+'\n');
Andy
Wg 2 rozwiązania \n jest znakiem specjalnym pod "". A moje pytanie brzmi: jak zrobić aby się wyświetlił napis "\n"??
B.K.
<blockquote> <a href="#comment-4477" rel="nofollow"> <strong><em>Andy:</em></strong> </a> Wg 2 rozwiązania \n jest znakiem specjalnym pod „”. A moje pytanie brzmi: jak zrobić aby się wyświetlił napis „\n”?? </blockquote> public class Test{ public static void main(String[] args){ System.out.print("\\n"); } } Podwójny backslash(\\) i wyświetlisz to co chciałeś, czyli "\n". Sam backslash(\) odpowiedzialny jest w Javie, za jakąś specjalną akcję.
PIOTR
Mam pewien problem zamiast wyświetlenia tych imon pojawi mi się javac: File not Found: ania.java Usage: javac use -help for a list of possible options Czy da sie to jakoś zrobić?
Piotrek
a ja wpisałem tak jak w przykładzie public class Hello{ public static void main(String[] args){ System.out.println("Ania"); System.out.println("Bartek"); System.out.println("Kasia"); } } i wyswietlio mi AniaBartekKasia
Scypek
ajjj i utknąłem. Na Ubuntu przy próbie odpalenia Hello.class wyskakuje mi w terminalu java.lang.NoClassDefFoundError. To pierw czeka mnie rozkminka jak to rozwiązać ;)
Scypek
Dobra problem rozwiązany w razie jak by ktoś się bawił na linuksie i by go to interesowało... plik .class odpalamy tak: java -cp . NazwaPliku
Vadron
Wspaniały artykuł panie Sławku, stawiam pierwsze kroki w tym języku i wszystko jest przejrzyste. Lecz prosiłbym o wytłumaczenie różnicy pomiędzy : System.out.print("Basia\n"+"Kasia\n"+"Asia"); a System.out.println("Ania\nBartek\nKasia");
Damian
Jeżeli dobrze zrozumiałem ten http://javastart.pl/klasy/string-stringbuffer-i-stringbuilder/ artykuł, to System.out.print(„Basia\n”+”Kasia\n”+”Asia”); stworzy 3 osobne stringi, po czym utworzy czwarty będący ich połączeniem i dopiero ten obiekt (powstały w wyniku wywołania kilku konstruktorów i konwersji bufora do string) przekaże do metody System.out.print(...) Natomiast "System.out.println(„Ania\nBartek\nKasia”);" zrobi to samo przy użyciu jednego obiektu typu string, czyli zrobi to szybciej. Z tym, że w jednym programie jest to bardziej odczuwalne, w drugim mniej, zależy jak często się taką operację powtarza.
Vadron
bardzo dziękuje za szybkie wytłumaczenie, teraz wszystko jest dla mnie jasne. P.S przeczytałem wczoraj, lecz odpisuje dzisiaj gdyż lekcje pana Sławka mnie niesamowicie wciągneły
DemonicV
Witam. Wpisuje wszystko poprawnie w cmd pojawia mi się wszystko bez błędów ale nie widzę żadnego tekstu. Mój kod to: public class Hello{ public static void main(String[] args){ System.out.printnl("Ania"); System.out.printnl("Bartek"); System.out.printnl("Kasia"); } }
parararaararar
U mnie to samo po wciśnięciu "enter" nic się nie dzieje
DemonicV
Znaczy u mnie przeskakuje linia tak jakby było napisane coś, lecz tego nie widać.
Iss
DemonicV to dlatego, że w folderze tworzy ci się NAZWA.class a potem ty musisz to odtworzyć używając java NAZWA nie dopisując .class) ja mam problem z przejściem do wyższego folderu mógłby ktoś to objaśnić?
xxx
Standardowa dosowska komenda c.. nie ma co objasniac