Formatierung toString Java
Ich würde gerne wissen, wie man format toString
:
Ich habe versucht, mit printf
- und string.format
aber Sie will mich ändern String
und int
zu Object[]
Ich soll es wie folgt Aussehen: (Leerzeichen)
Mappe1______Author1________850
Book23_____Author2424_____250
class Book
{
private String title,author;
private int numberOfPages;
Book()
{
}
public Book(String title, String author, int pages) {
this.title = title;
this.author = author;
this.numberOfPages = pages;
}
public String toString()
{
return(title + "%63s") + "\t" + (author + "%63s") + "\t" + numberOfPages;
//It actually works but makes the "%63s" appear :o
}
}
%63s
ist nur ein string-literal, die Sie verketten. Die tabs Hinzugefügt werden, indem "\t"
, so können Sie einfach entfernen Sie die %63s
, aber das wird wahrscheinlich nicht ausrichten, wenn Ihr Buchtitel und Autoren sind von unterschiedlicher Länge. Edit: versuchst du eine Sammlung von Büchern ausgerichtet? Wenn dem so ist, können Sie nicht tun dies für einzelne toString-Methoden.Sie sollte werden mit
String.format
. Was ist das Problem?"Die Methode format(Locale, String, Object[]) in den Typ "String" ist nicht anwendbar für die Argumente (String, String, String, int)" 🙁
InformationsquelleAutor user3764862 | 2014-09-25
Du musst angemeldet sein, um einen Kommentar abzugeben.
Welche Java-version verwenden Sie?
ideone.com/fork/khe1Wc
InformationsquelleAutor maszter
String.format richtig ist. Sie brauchen nur zu Holen Sie sich die Formatierungs-string korrekt.
Aktualisieren Sie Ihre
toString()
- Methode wie folgt:Den ersten
%63s
ersetzt werden, mittitle
.Den
%63s
ersetzt werden, mitauthor
- und Leerzeichen einfügen, um es 63 Zeichen hinter dem Ende des Titels.Den
%10d
ersetzt werden, mitnumberOfPages
- und pad-die Zahl aus 10 Ziffern breit.InformationsquelleAutor Brian
Ich bin nicht ganz sicher, ob Sie möchten, richten Sie die Titel, die Autoren und die Anzahl der Seiten, die in drei separate Spalten. Aber wenn Sie tun, um dies zu tun, können Sie erreichen dies durch überschreiben der
toString
Methode des Buches, weil Sie nicht wissen, wie lange der Titel und die Namen der Autoren der anderen Bücher in der Sammlung sind.Können Sie jedoch deklarieren Sie eine benutzerdefinierte Sammlung für Bücher und überschreiben Sie die
toString
Methode. Diese könnte wie folgt Aussehen:Die Idee ist, zu schauen, welcher Titel am längsten, und fügen Sie für jedes Buch, das Sie drucken möchten eine Polsterung erreicht, dass wenigstens der längste Titel. Das gleiche für den Autor.
Beachten Sie, dass dieser code ist nicht wirklich gut geschrieben, aber es sollte ausreichen zu vermitteln.
InformationsquelleAutor Kulu Limpa