here's a hack, pls comment about improvements, etc., time to learn even more :)
private Double RegNumber(String sIn) {
Double result = 0E0;
Pattern p = Pattern.compile("^\\-?([0-9]{0,3}(\\,?[0-9]{3})*(\\.?[0-9]*))");
Matcher m = p.matcher(sIn);
if (m.matches()) {
result = Double.valueOf(sIn);
} else {
Pattern p1 = Pattern.compile("^\\(?([0-9]{0,3}(\\,?[0-9]{3})*(\\.?[0-9]*))\\)?$");
Matcher m1 = p1.matcher(sIn);
if (m1.matches()) {
String x[] = sIn.split("(\\({1})|(\\){1})");
result = Double.valueOf("-" + x[1]);
} else {
Pattern p2 = Pattern.compile("([0-9]{0,3}(\\,?[0-9]{3})*(\\.?[0-9]*))\\-$");
Matcher m2 = p2.matcher(sIn);
if (m2.matches()) {
String x[] = sIn.split("(\\-{1})");
result = Double.valueOf("-" + x[0]);
} else {
result = 99999999E99;
}
}
}
return result;
}
source
share