Kurs Java Podstawy - rozszerzony

Rozwiązanie 1.1

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");
  }
}

, lub 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");
  }
}

Komentarze

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 :-)

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.

lllll

nie

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.



Andy:

Wg 2 rozwiązania \n jest znakiem specjalnym pod „”.
A moje pytanie brzmi: jak zrobić aby się wyświetlił napis „\n”??


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

Znaczy u mnie przeskakuje linia tak jakby było napisane coś, lecz tego nie widać.

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

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