[Java] Abfrage ob Variableninhalt korrekt

OP #4189278
Lesenswert?

Hallo Leute,

ich habe folgendes Problem:

ich bekommen Daten als String geschickt. Der String wird mit 
Float.parseFloat geparst und in ein float gewandelt.

Bei der Übertragung als String bleiben allerdings manchmal Zeichen auf 
der Strecke.

Machmal kommt also statt dem String "1,23" nur "1," oder auch nur "," 
an.
Gerade im letzen Fall schlägt das parsen fehl und die Anwendung hängt 
sich auf.

Um dies abzufangen, würde ich gerne eine Verzweigung einbauen:

Wenn der Inhalt des Strings dem Schema X,XX entspricht, parse den Text.

Genau für diesen Fall fehlt mir allerdings der Code.
Hat jemand einen Gedankenanstoß?

dankesehr!

Grüße,
dionysos
Gast #4189295
Lesenswert?

Da gibt es viele Möglichkeiten,

du könntest direkt die ParseException abfangen:
1
String foo = kommtIrgendWoHer();
2
float bla;
3
try {
4
    bla = Float.parseFloat(foo);
5
} catch (Exception e) {
6
    bla = 0f;
7
}

Oder du lässt RexExps drauf los:
1
Pattern pattern = Pattern.compile("([0-9]{1},[0-9]{2})");
2
Matcher matcher = pattern.matcher(LQ);
3
if (matcher.find()) {
4
    //hier dann die Parserei mit matcher.group(1)
5
}else{
6
   //was anderes
7
}

Und ich würde überdenken, ob ich wirklich float will 
(http://docs.oracle.com/cd/E19957-01/806-3568/ncg_goldberg.html) und 
nicht lieber doch auf BigDecimal umschwenken wollen würde ;)

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren