Formatowanie (printf()) w toString?

0

Witam, czy da się sformatować tekst w toString niejako za pomocą printf()?
Mam coś takiego - nawet nie chce się skompilować...

public class Samochod
{
    String marka;
    String rodzaj;
    double koszt;
    int rok_produkcji;

//Tutaj dalsza część klasy.

public String toString()
    {
        return "%10s %15s %6f %6d", marka, rodzaj, koszt, rok_produkcji; // Błąd: ';' expected.
    }
}
0

Straszny kod. Wygląda jak próba okłamania składni, ale niestety się nie da. Gdzie używasz metody printf()? Dlaczego return zwraca kilka dziwnych obiektów po przecinku!!! Błąd składniowy!!!!

public String toString(){
    return String.format("%10s %15s %6f %6d", marka, rodzaj, koszt, rok_produkcji);
}
0

Dzięki. :-)
Dopiero zaczynam się bawić w printf, format, itd., stąd ten błąd, teraz może być już tylko lepiej. ;-D
Kompiluje się, zaraz popatrzę, czy działa.

0

O ile sie oreintuje, w Javie nie ma czegos takiego jak printf() i parametry, z ktorymi ma tobyc wydrukowane, przykladowo dla liczb tyoy int %d. Tu raczej stosuje sie System.out.println(napis jaki chcesz wyswietli+zmienna) albo JOptionPane.showMessageDialog(null, tekst+zmienna) tylko przy tym drugim sposobie przed deklaracja klasy wpisz koniecznie import javax.swing.*; A printfy to sa w jezyku c...

0

@up: ojoj
System.out.printf("format", arg1, arg2, ...) - to jest odpowiednik, uzywa do tego varargsow dla parametrow, wiec uzywa sie identycznie jak Koziolkowe String.format()

0

Generalnie dla zainteresowanych:

W Javie 5 printf powstala ponownie z prochow C w postaci klasy java.util.Formatter i dostarcza obecnie drugi sposob formatowania tekstow.

Cytat za:
Brian D. Eubanks, 'Java. Programowanie, biblioteki open source i pomysly na nowe projekty'

0

Dokladnie, i klasa PrintStream (tego typu jest System.out) oraz PrintWriter zawieraja instancje Formattera, ktory jest uzywany miedzy innymi w metodach format() oraz printf() (printf() deleguje do format(), ktory deleguje dalej do Formetter.format()).

0

System.out.printf("format", arg1, arg2, ...) - to jest odpowiednik, uzywa do tego varargsow dla parametrow, wiec uzywa sie identycznie jak Koziolkowe String.format()

Mam pytanie. Jak do tej konstrukcji dodać jakiegos Stringa? Probuje tak: "x" i nie dziala..

0

Wypróbuj po kolei wszystkie litery ;-) , albo zajrzyj do dokumentacji klasy Formatter.

0

Identycznie jak w C.
System.Out.printf("W tym tekście jest %s w ciąg formatujący", "tekst wbudowany");
Można również użyć System.err.printf() jako odpowiednika fprintf(stderr, ...).
Niemal wszystkie modyfikatory pól są identyczne jak w C. Brakuje tylko wersji z gwiazdką oraz %[] (które i tak nie były w standardzie).

1 użytkowników online, w tym zalogowanych: 0, gości: 1