Konvertierung String -> int

Herr Kaiser

Bekanntes Mitglied
Hallo Forum,

eine kurze Frage. Einen String kann ich scheinbar so:

Java:
int i = Integer.parseInt(str);

oder so:

Java:
int i = new Integer(str).intvalue();

in einen integer konvertieren.
Sind beide Methoden äquivalent, oder gibt es einen Unterschied, der sich mir als Anfänger noch nicht erschließt?

Danke schonmal 🙂
 
Bei der zweiten Version wird zuerst ein Integer Object angelgt, und dieses dann ers in ein int gespeichert, daher ist die zweite Variante speicher intensiver. Und mann sollte daher eher die erste verwenden, wenn man kein Integer Object braucht
 
Überleg doch selbst mal wo der Unteschied ist, das sieht man an den Methodenaufrufen ziemlich deutlich.

1. statisch
2. Objeterzeugung
 
> Also wenn ich nach int konvertieren will, nehme ich die erste, wenn ich einen Integer brauche, die zweite Methode (?)

man kann im Laden eine Zange kaufen oder einen Werkzeugkasten und dort gegebenfalls die Zange herausnehmen,
wenn du die Zange brauchst, dann mach das erste, wenn einen Werkzeugkasten, dann das zweite

falls du dafür eine Bestätigung brauchst: ja
 
Danke, es hat Klick gemacht. Darf ich noch eine Anschlussfrage stellen?
Was ist denn nun hier der Unterschied?
Java:
Float f = Float.valueOf(str).floatValue();
Java:
Float f = Float.parseFloat(str);
???:L
 
parseFloat gibt dir direkt ein float zurück, während valueOf ein Float-Objekt erzeugt. Ersteres ist ein primitiver Datentyp, letzteres der dazugehörige Wrapper.
Ich würde parseFloat benutzen, wenn ich ein float will. Wenn ich ein Float brauche - z. B: zum einfügen in Collections - würde ich zu valueOf greifen.
 
Quellcode:
Java:
    public static Float valueOf(String s) throws NumberFormatException {
	return new Float(FloatingDecimal.readJavaFormatString(s).floatValue());
    }

    public static float parseFloat(String s) throws NumberFormatException {
	return FloatingDecimal.readJavaFormatString(s).floatValue();
    }

--------

Float f = Float.valueOf(str).floatValue();
ist besonders dämlich, da aus dem Rückgabewert Float erst noch ein float gemacht wird, dann per Autoboxing wieder ein Float,
wenn schon diese Methode, dann gleich
Float f = Float.valueOf(str);
 

Neue Themen


Zurück
Oben