Wie konvertiert man einen String in float und vermeidet die Verwendung von try / catch in Java?

8

Es gibt einige Situationen, in denen ich eine Zeichenfolge in float oder einen anderen numerischen Datentyp konvertieren muss, aber es gibt eine Wahrscheinlichkeit, dass einige nicht konvertierbare Werte wie "-" oder "/" erhalten werden und ich nicht alle Werte verifizieren kann vorher, um sie zu entfernen. und ich möchte vermeiden, try / catch für diese Angelegenheit zu verwenden, gibt es eine andere Möglichkeit, eine korrekte Konvertierung in Java durchzuführen? etwas Ähnliches wie C # TryParse ?

    
Vahid hashemi 02.12.2011, 20:10
quelle

3 Antworten

5

Das einfachste, was ich mir vorstellen kann, ist java.util.Scanner . Dieser Ansatz erfordert jedoch eine neue Scanner-Instanz für jeden String.

%Vor%

Als nächstes könnten Sie ein Regex-Muster schreiben, das Sie verwenden, um den String zu überprüfen (komplex, um zu große Werte zu versäumen) und dann Integer.parseInt () aufzurufen, nachdem Sie den String überprüft haben.

%Vor%

Beide analysieren die Zeichenfolge jedoch zweimal, einmal zum Testen der Zeichenfolge und ein zweites Mal zum Abrufen des Werts. Abhängig davon, wie oft Sie ungültige Zeichenfolgen erhalten, ist das Einfangen einer Ausnahme möglicherweise schneller.

    
josefx 02.12.2011, 20:31
quelle
4

Leider gibt es in Java keine solche Methode. Da es in Java keinen out-Parameter gibt, müsste für das Schreiben einer solchen Methode ein Null-Float zurückgegeben werden, um einen Fehler zu signalisieren oder ein FloatHolder-Objekt zu übergeben, das mit der folgenden Methode geändert werden kann:

%Vor%     
JB Nizet 02.12.2011 20:17
quelle
0

Java bietet keine eingebauten tryParse-Methoden. Eine der Lösungen, die Sie ausprobieren können, ist, Ihre eigene tryParse-Methode zu erstellen und try / catch-Code in diese Methode einzufügen. Dann können Sie diese Methode problemlos in Ihrer Anwendung verwenden einfach und ohne Versuch / Fang an allen Orten, die Sie die Methode verwenden.

Eine der Beispielfunktionen kann folgenden Code haben

%Vor%     
Kamran Ali 02.12.2011 20:24
quelle

Tags und Links