Best Practice Flexible String-Darstellung

Natac

Bekanntes Mitglied
Ich habe eine Klasse, die über verschiedene Attribute verfügt:
Java:
public class Person {
  private String firstname;
  private String lastname;
  private int age;

  public Person(String firstname, String lastname, int age){
    this.firstname = firstname;
    this.lastname = lastname;
    this.age = age;
  }

  //Getter & Setter

  public String toString(String pattern){
    // ??? 
  }

}[/Java]

Nun möchte ich diese Instanzen dieser Klasse als String anzeigen. Jedoch möchte ich durch einen Formatierungs-String (pattern) bestimmen, welche Werte und in welcher Reihenfolge diese Angezeigt werden. Beispiel:

[code=Java]Person p = new Person("Peter", "Pan", 15);

p.toString("$lastname, $firstname"); // "Pan, Peter"
p.toString("$firstname ($age)"); // "Peter (15)"
p.toString("$firstname $lastname ist $age Jahre alt"); // "Peter Pan ist 15 Jahre alt"
Die Notation mit $Eigenschaft habe ich mir jetzt ausgedacht, um mein Problem zu verdeutlichen

Gibt es Bibliotheken, die so etwas untersützen? Bis jetzt ist mir nur String.format eingefallen, was dem Ganzen aber nicht wirklich gerecht wird. Kann mir aber auch nicht vorstellen, dass ich so eine Lösung komplett selbst implementieren muss, da es ja schon relativ allgemeingültig ist.

Kennt jemand da vielleicht eine entsprechende Bibilothek?
 
Also ich kenne zwar keine entsprechende Bibliothek, aber warum nutzt du nicht einfach replace($Eigenschaft, Variable)?


Java:
  public String toString(String pattern){
    
    pattern = pattern.replace("$firstname",this.firstname).replace("$lastname",this.lastname).replace("$age",this.age);
    return pattern; 

}


ich halte das für eine schnelle und einfache Lösung, die eine Bibliothek unnötig macht.

Gruß
 
Zuletzt bearbeitet:

Zurück
Oben