Methoden toString()-Date Formatter

joki97

Mitglied
Hi,

ich muss für die Uni eine toString-Funktion in Java schreiben, welche eine eingegebene Zahl so formatiert, dass eine Zweistellige Zahl mit 0 begonnen wird. Habe mir nun Überlegt dass mit SimpleDateFormatter zu machen, leider wirft das bei mir immer eine Fehlermeldung. Hat jemand eine Idee wie das umzusetzen ist? Die Funktion soll keine Parameter haben und einfach ausgeführt werden können.

Ich möchte auch direkt anmerken, dass ich keine Lösung möchte sondern lediglich einen Ansatz wie ich das Lösen könnte.

Danke.
 

Anhänge

  • Unbenannt.png
    Unbenannt.png
    102,2 KB · Aufrufe: 3
Zuletzt bearbeitet:

mihe7

Top Contributor

joki97

Mitglied
Wie willst Du Zahlen mit einem Objekt formatieren, das für die Formatierung von Datumsangaben zuständig ist? Abgesehen davon, wird es vermutlich dem Sinn der Aufgabe zuwider laufen, die Datumsfunktionen von Java zu verwenden.

Schau Dir mal String.format an.

Nachtrag:

Die Sprache heißt immer noch Java :)
Da habe ich zu wenig nachgedacht, hast natürlich Recht.
Habe es aber anscheinend eben gelöst bekommen. Geht bestimmt schöner, tut aber aktuell was es soll.
Java:
public String toString() {
        String t = String.valueOf(day); //Caste den String aus den int-Eingaben des Benutzers bzw der vorgegebenen Zahlen
        String m = String.valueOf(month);
        String y = String.valueOf(year);
        char[] monat = m.toCharArray(); // Wandle Tag und Monat in Char Array um, um länge zu checken und um 0en hinzuzfügen
        char[] tag = t.toCharArray();
        if (tag.length <= 1) {
            if (monat.length <= 1) {

                return "0" + t + ".0" + m + "." + year;
            } else {
                return t + "." + m + "." + year;
            }
        } else {
            if (monat.length <= 1) {

                return "0" + t + ".0" + m + "." + year;
            } else {
                return t + "." + m + "." + year;
            }
        }

    }

PS: Ob JAVA oder Java ist mMn völlig egal, aber auf deinen Wunsch hin habe ich es natürlich geändert :)
 

joki97

Mitglied
Nö. Mach mal z. B. den 15.1.900
Ja, das gibt er mir aus, da hast du wohl recht. Aber da liegt das problem in der Abfrage des Jahres in einer anderen Methode.

EDIT: Auch das ist behoben, danke für den Hinweis.
Achso, da stellt sich mir aber die Frage: 900 ist auch ein Jahr, also wäre das ja nicht falsch gewesen.
 
Zuletzt bearbeitet:

mihe7

Top Contributor
Wenn ich es richtig sehe, dürfte Dein Code 015.01.900 liefern. Du stellst dem Tag eine 0 voran, sobald der Monat keine 2 Stellen hat.

Um die Länge eines Strings zu erhalten, brauchst Du auch kein char-Array, hierfür gibt es die Methode String#length(). Um die Länge der Stringdarstellung einer nicht-negativen Ganzzahl zu erhalten, brauchst Du noch nicht mal einen String: ist der Wert kleiner 10 hat die Zahl nur eine Stelle, ist er kleiner 100 hat die Zahl zwei Stellen usw.
 

joki97

Mitglied
Wenn ich es richtig sehe, dürfte Dein Code 015.01.900 liefern. Du stellst dem Tag eine 0 voran, sobald der Monat keine 2 Stellen hat.

Um die Länge eines Strings zu erhalten, brauchst Du auch kein char-Array, hierfür gibt es die Methode String#length(). Um die Länge der Stringdarstellung einer nicht-negativen Ganzzahl zu erhalten, brauchst Du noch nicht mal einen String: ist der Wert kleiner 10 hat die Zahl nur eine Stelle, ist er kleiner 100 hat die Zahl zwei Stellen usw.
Ach das meinst du. Ja, das hatte ich vergessen oben zu editen. In meinem Code funktionierte es aber schon vorher. Sorry für die Verwirrung.
Ergibt absolut Sinn. Du hast natürlich recht ^^ Liegt eigentlich auf der Hand. Danke dir.
Der Übersicht halber:
Java:
public String toString() {
        if (day<10) {
            if (month<10) {
                return "0" + day + ".0" + month + "." + year;
            } else {
                return "0"+day + "." + month + "." + year;
            }
        } else {
            if (month<10) {
                return day + ".0" + month + "." + year;
            } else {
                return day + "."+ month + "." + year;
            }
        }
    }
 

mihe7

Top Contributor
Zunächst mal ist es keine schlechte Übung, so etwas mal selbst zu programmieren. Wenn Du eigene Methoden einführen darfst, wäre die Formatierung einer Zahl ein guter Zeitpunkt dafür. Für so eine Methode gibt es nicht die eine, richtige Implementierung sondern viele verschiedene Möglichkeiten, die alle ihre Vor- und Nachteile haben oder auch gleichwertig sind.

Beispielsweise wäre Dein String-Ansatz durchaus möglich:
Java:
// zahl darf nicht negativ sein.
private String formatiere(int zahl, int minStellen) {    
    String ergebnis = Integer.toString(zahl);
    for (int stellen = ergebnis.length(); stellen < minStellen; stellen++) {
        ergebnis = "0" + ergebnis;
    }
    return ergebnis;
}
Die Implementierung hätte z. B. den Vorteil, dass sie einfach ist und z. B. den Nachteil, dass "viele" Objekte erzeugt werden.

Wenn man das nicht selbst machen will, kann man z. B: auf String.format zurückgreifen:
Java:
public class Test {
    public static void main(String[] args) {
        System.out.println(String.format("%02d.%02d.%04d", 15, 1, 900));
    }
}

Noch was, weil ich es gerade sehe:
String t = String.valueOf(day); //Caste den String aus den int-Eingaben des Benutzers bzw der vorgegebenen Zahlen
Das ist kein Cast, sondern ein ganz gewöhnlicher Methodenaufruf, der in diesem Fall ein int erhält und einen String liefert.
 

joki97

Mitglied
Zunächst mal ist es keine schlechte Übung, so etwas mal selbst zu programmieren. Wenn Du eigene Methoden einführen darfst, wäre die Formatierung einer Zahl ein guter Zeitpunkt dafür. Für so eine Methode gibt es nicht die eine, richtige Implementierung sondern viele verschiedene Möglichkeiten, die alle ihre Vor- und Nachteile haben oder auch gleichwertig sind.

Beispielsweise wäre Dein String-Ansatz durchaus möglich:
Java:
// zahl darf nicht negativ sein.
private String formatiere(int zahl, int minStellen) {   
    String ergebnis = Integer.toString(zahl);
    for (int stellen = ergebnis.length(); stellen < minStellen; stellen++) {
        ergebnis = "0" + ergebnis;
    }
    return ergebnis;
}
Die Implementierung hätte z. B. den Vorteil, dass sie einfach ist und z. B. den Nachteil, dass "viele" Objekte erzeugt werden.

Wenn man das nicht selbst machen will, kann man z. B: auf String.format zurückgreifen:
Java:
public class Test {
    public static void main(String[] args) {
        System.out.println(String.format("%02d.%02d.%04d", 15, 1, 900));
    }
}

Noch was, weil ich es gerade sehe:

Das ist kein Cast, sondern ein ganz gewöhnlicher Methodenaufruf, der in diesem Fall ein int erhält und einen String liefert.
Danke dir für die vielen Tipps!
Es ist natürlich sinnvoll langfristig bei so etwas zu denken, werde ich im Hinterkopf behalten.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
W LocalDate toString und nach Split falsch "erkannt"? Java Basics - Anfänger-Themen 8
W ArrayList und toString Java Basics - Anfänger-Themen 17
W toString bei composition Java Basics - Anfänger-Themen 4
M Unterschied Integer.toString(x) und x.toString() Java Basics - Anfänger-Themen 22
E Einrücken inner der toString()-Methode Java Basics - Anfänger-Themen 34
W Objekte über Scanner Input; ToString Probleme... Java Basics - Anfänger-Themen 4
M Polymorphie toString Java Basics - Anfänger-Themen 13
Y Wie kann ich ein Element in einer toString finden. Java Basics - Anfänger-Themen 2
A Implementierung von String toString methode() Java Basics - Anfänger-Themen 4
P falscher booleanwert bei toString Java Basics - Anfänger-Themen 4
P Methode die eigentlich einen Scanner benötigt mit toString() Java Basics - Anfänger-Themen 5
M Wie analysiert JSON eine toString-Ausgabe ? Java Basics - Anfänger-Themen 1
V Neue Ausgabe von toString nach Methodenaufruf Java Basics - Anfänger-Themen 9
M Die Inhalte eines Arrays mit der Methode Arrays.toString ausgeben Java Basics - Anfänger-Themen 4
H toString-Methode Java Basics - Anfänger-Themen 24
E Vererbung mit toString() Java Basics - Anfänger-Themen 6
O Referenz - toString Java Basics - Anfänger-Themen 9
B toString mit optionaler Ausgabe überrschreiben Java Basics - Anfänger-Themen 5
J toString-Methode in Verbindung mit varArgs-Konstruktor Java Basics - Anfänger-Themen 18
C Methoden toString Java Basics - Anfänger-Themen 4
B toString() Dilemma Java Basics - Anfänger-Themen 7
TomatenBrot447 Mit toString eine Ausgabe liefern wie in einer schon implementierten Methode ? Java Basics - Anfänger-Themen 13
TomatenBrot447 Mit toString eine Ausgabe liefern wie in einer schon implementierten Methode ? Java Basics - Anfänger-Themen 1
V ToString-Methode mit JUnit testen(BlueJ) Java Basics - Anfänger-Themen 10
D Arrays.toString spuckt null aus? Java Basics - Anfänger-Themen 3
S Methoden equals(object o) / toString Java Basics - Anfänger-Themen 15
K array in toString des objektes ausgeben Java Basics - Anfänger-Themen 1
Psypsy hashCode, equals und toString Java Basics - Anfänger-Themen 3
J toString() Methode und ArrayList Java Basics - Anfänger-Themen 1
K toString() Java Basics - Anfänger-Themen 1
H Erste Schritte Arrayes.toString methode funktioniert nicht Java Basics - Anfänger-Themen 2
A Problem mit toString Methode Java Basics - Anfänger-Themen 8
T String toString methode nicht vererbt ... Java Basics - Anfänger-Themen 4
I Vererbung toString() Frage Java Basics - Anfänger-Themen 5
M Unbekannte Nummer bei Aufruf der toString Methode Java Basics - Anfänger-Themen 3
E Richtige Ausgabe nur mit toString() - Warum? Java Basics - Anfänger-Themen 4
S Datentypen List.toString wirft NullPointerException Java Basics - Anfänger-Themen 5
A ToString()-Methode richtig benutzen Java Basics - Anfänger-Themen 3
J ArrayList toString() Übergabe Fehler Java Basics - Anfänger-Themen 2
F Eigene LinkedList - toString Java Basics - Anfänger-Themen 10
A JList / toString modify Java Basics - Anfänger-Themen 2
J Vererbung Überschriebene toString-Methode aufrufen Java Basics - Anfänger-Themen 10
M toString gibt "null" statt "0.0" aus Java Basics - Anfänger-Themen 5
M toString Java Basics - Anfänger-Themen 7
H Integer.toString(int i) vs. String.valueOf(int i) Java Basics - Anfänger-Themen 12
C Methoden String von einem toString() herauslesen Java Basics - Anfänger-Themen 2
B Wann toString() überschreiben? Java Basics - Anfänger-Themen 21
P toString-Methode gibt immer null vor Variable aus Java Basics - Anfänger-Themen 9
N .toString() und (string) Java Basics - Anfänger-Themen 2
B Methoden toString Methode mit Schlüsselwort new Java Basics - Anfänger-Themen 3
S schwierigkeit mit in der verwaltungsklasse benutzen von toString() Java Basics - Anfänger-Themen 7
J Zweidimensionales Array durch ToString ausgeben lassen Java Basics - Anfänger-Themen 21
N Matrix an toString Java Basics - Anfänger-Themen 7
A Werteausgabe des Construktors mit toString Java Basics - Anfänger-Themen 2
D super.tostring Java Basics - Anfänger-Themen 8
A Stringarray toString Java Basics - Anfänger-Themen 5
L toString()-Methode in verschieden Klassen Java Basics - Anfänger-Themen 3
R Frage zu statischer Methode toString() Java Basics - Anfänger-Themen 3
S Escape Sequenz in der toString() ? Java Basics - Anfänger-Themen 4
S Stack als verkettete liste/ toString methode Java Basics - Anfänger-Themen 3
A Arrays.asList(s).toString() ohne [] und , Java Basics - Anfänger-Themen 3
P toString Java Basics - Anfänger-Themen 4
M .toString(); // Ausgabe: Attribut von Vaterklasse Java Basics - Anfänger-Themen 12
K toString Java Basics - Anfänger-Themen 10
F toString Methode ausgeben Java Basics - Anfänger-Themen 3
A Object -> String mit valueOf, toString oder cast ? Java Basics - Anfänger-Themen 6
R getClass und getName sowie toString Java Basics - Anfänger-Themen 10
D Arrays.toString problem Java Basics - Anfänger-Themen 2
D array.toString() wieso funktioniert es nicht Java Basics - Anfänger-Themen 4
S toString-Methode für Map Java Basics - Anfänger-Themen 15
L OOP hilfe bei tostring methode Java Basics - Anfänger-Themen 6
D toString überschreiben + Exception werfen Java Basics - Anfänger-Themen 3
H toString / println Java Basics - Anfänger-Themen 2
H toString() erben? Java Basics - Anfänger-Themen 3
A Arrays.toString() ohne [ und ] Java Basics - Anfänger-Themen 2
K Arrays.toString(); funktioniert nicht Java Basics - Anfänger-Themen 4
A byte.toString() -> Datenmüll Java Basics - Anfänger-Themen 52
K Problem mit .toString und FileReader Java Basics - Anfänger-Themen 2
G toString Problem Java Basics - Anfänger-Themen 12
G Gregorian Calendar aus toString() Ausgabe wiederherstellen Java Basics - Anfänger-Themen 4
T Warum Fehlermeldung bei diesem ToString Programm? Java Basics - Anfänger-Themen 2
B toString Java Basics - Anfänger-Themen 5
S Was macht [Integer.toString(number, tarRadix)] Java Basics - Anfänger-Themen 3
G Probleme bei toString Überschreibung Java Basics - Anfänger-Themen 6
M int toString Datentypen Umwandeln, AnfängerProblem Java Basics - Anfänger-Themen 3
T keine Ausgabe von toString obwohl keine Fehlermeldung Java Basics - Anfänger-Themen 5
D ToString Java Basics - Anfänger-Themen 3
C Bedeutung von toString im Bezug auf Text Java Basics - Anfänger-Themen 4
N char[] aus JPasswordField toString() Java Basics - Anfänger-Themen 6
T Boolean toString ? Java Basics - Anfänger-Themen 3
D Frage zum Aufruf einer toString-Methode Java Basics - Anfänger-Themen 2
H toString(); varargs; bitSet Java Basics - Anfänger-Themen 8
M getClass() und getClass().toString() Java Basics - Anfänger-Themen 4
V toString()-Methode Java Basics - Anfänger-Themen 9
S PrintWriter-Probleme mit toString Methode->Person@17182c1 Java Basics - Anfänger-Themen 10
P Vektor toString? Java Basics - Anfänger-Themen 2
S valueOf() vs. toString() Verwendung??? Java Basics - Anfänger-Themen 13
G Frage zur toString ? Java Basics - Anfänger-Themen 4
L .toString wieder rückgängig machen Java Basics - Anfänger-Themen 7
H Was ist toString ??? Java Basics - Anfänger-Themen 7

Ähnliche Java Themen

Neue Themen


Oben