diff options
Diffstat (limited to 'main/src/cgeo/geocaching/geopoint/DistanceParser.java')
| -rw-r--r-- | main/src/cgeo/geocaching/geopoint/DistanceParser.java | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/main/src/cgeo/geocaching/geopoint/DistanceParser.java b/main/src/cgeo/geocaching/geopoint/DistanceParser.java index 5f02895..e1692f4 100644 --- a/main/src/cgeo/geocaching/geopoint/DistanceParser.java +++ b/main/src/cgeo/geocaching/geopoint/DistanceParser.java @@ -1,6 +1,10 @@ package cgeo.geocaching.geopoint; -import java.util.regex.Matcher; +import cgeo.geocaching.utils.MatcherWrapper; + +import org.apache.commons.lang3.StringUtils; + +import java.util.Locale; import java.util.regex.Pattern; public final class DistanceParser { @@ -19,16 +23,16 @@ public final class DistanceParser { * if the given number is invalid */ public static float parseDistance(String distanceText, final boolean metricUnit) { - final Matcher matcher = pattern.matcher(distanceText); + final MatcherWrapper matcher = new MatcherWrapper(pattern, distanceText); if (!matcher.find()) { throw new NumberFormatException(distanceText); } final float value = Float.parseFloat(matcher.group(1).replace(',', '.')); - final String unit = matcher.group(2).toLowerCase(); + final String unit = matcher.group(2).toLowerCase(Locale.US); - if (unit.equals("m") || (unit.length() == 0 && metricUnit)) { + if (unit.equals("m") || (StringUtils.isEmpty(unit) && metricUnit)) { return value / 1000; } if (unit.equals("km")) { |
