update rework #616 and remove trim
This commit is contained in:
parent
3b650a51c2
commit
1ffd42904b
1 changed files with 47 additions and 47 deletions
|
@ -565,85 +565,85 @@ public abstract class BExpressionContext implements IByteArrayUnifier {
|
||||||
String org = value;
|
String org = value;
|
||||||
try {
|
try {
|
||||||
// remove some unused characters
|
// remove some unused characters
|
||||||
value = value.replace(",", ".");
|
value = value.replaceAll(",", ".");
|
||||||
value = value.replace(">", "");
|
value = value.replaceAll(">", "");
|
||||||
value = value.replace("_", "");
|
value = value.replaceAll("_", "");
|
||||||
|
value = value.replaceAll(" ", "");
|
||||||
|
//value = value.replaceAll(" ", ""); // nbsp
|
||||||
|
value = value.replaceAll("’", "'");
|
||||||
|
value = value.replaceAll("”", "\"");
|
||||||
if (value.indexOf("-") == 0) value = value.substring(1);
|
if (value.indexOf("-") == 0) value = value.substring(1);
|
||||||
if (value.indexOf("~") == 0) value = value.substring(1);
|
if (value.contains("-")) { // replace eg. 1.4-1.6 m but also 1'-6"
|
||||||
if (value.contains("-")) { // replace eg. 1.4-1.6 m
|
value = value.substring(0, value.indexOf("-")); // + tmp;
|
||||||
String tmp = value.substring(value.indexOf("-") + 1).replaceAll("[0-9.,-]", "");
|
|
||||||
value = value.substring(0, value.indexOf("-")) + tmp;
|
|
||||||
}
|
}
|
||||||
|
value = value.toLowerCase(Locale.US);
|
||||||
|
|
||||||
// do some value conversion
|
// do some value conversion
|
||||||
if (value.toLowerCase().contains("ft")) {
|
if (value.contains("ft")) {
|
||||||
float foot = 0f;
|
float foot = 0f;
|
||||||
int inch = 0;
|
int inch = 0;
|
||||||
String[] sa = value.trim().toLowerCase().split("ft");
|
String[] sa = value.split("ft");
|
||||||
if (sa.length >= 1) foot = Float.parseFloat(sa[0].trim());
|
if (sa.length >= 1) foot = Float.parseFloat(sa[0]);
|
||||||
if (sa.length == 2) {
|
if (sa.length == 2) {
|
||||||
value = sa[1];
|
value = sa[1];
|
||||||
if (value.indexOf("in") > 0) value = value.substring(0, value.indexOf("in"));
|
if (value.indexOf("in") > 0) value = value.substring(0, value.indexOf("in"));
|
||||||
inch = Integer.parseInt(value.trim());
|
inch = Integer.parseInt(value);
|
||||||
foot += inch / 12f;
|
foot += inch / 12f;
|
||||||
}
|
}
|
||||||
value = String.format(Locale.US, "%3.1f", foot * 0.3048f);
|
value = String.format(Locale.US, "%3.1f", foot * 0.3048f);
|
||||||
}
|
}
|
||||||
String valueLowerCase = value.toLowerCase(Locale.US);
|
|
||||||
if (value.contains("'")) {
|
if (value.contains("'")) {
|
||||||
float foot = 0f;
|
float foot = 0f;
|
||||||
int inch = 0;
|
int inch = 0;
|
||||||
String[] sa = valueLowerCase.trim().split("'");
|
String[] sa = value.split("'");
|
||||||
if (sa.length >= 1) foot = Float.parseFloat(sa[0].trim());
|
if (sa.length >= 1) foot = Float.parseFloat(sa[0]);
|
||||||
if (sa.length == 2) {
|
if (sa.length == 2) {
|
||||||
value = sa[1];
|
value = sa[1];
|
||||||
if (value.indexOf("''") > 0) value = value.substring(0, value.indexOf("''"));
|
if (value.indexOf("''") > 0) value = value.substring(0, value.indexOf("''"));
|
||||||
if (value.indexOf("\"") > 0) value = value.substring(0, value.indexOf("\""));
|
if (value.indexOf("\"") > 0) value = value.substring(0, value.indexOf("\""));
|
||||||
inch = Integer.parseInt(value.trim());
|
inch = Integer.parseInt(value);
|
||||||
foot += inch / 12f;
|
foot += inch / 12f;
|
||||||
}
|
}
|
||||||
value = String.format(Locale.US, "%3.1f", foot * 0.3048f);
|
value = String.format(Locale.US, "%3.1f", foot * 0.3048f);
|
||||||
} else if (valueLowerCase.contains("in") || value.contains("\"")) {
|
} else if (value.contains("in") || value.contains("\"")) {
|
||||||
float inch = 0f;
|
float inch = 0f;
|
||||||
if (valueLowerCase.indexOf("in") > 0) value = value.substring(0, valueLowerCase.indexOf("in"));
|
if (value.indexOf("in") > 0) value = value.substring(0, value.indexOf("in"));
|
||||||
if (value.indexOf("\"") > 0) value = value.substring(0, value.indexOf("\""));
|
if (value.indexOf("\"") > 0) value = value.substring(0, value.indexOf("\""));
|
||||||
inch = Float.parseFloat(value.trim());
|
inch = Float.parseFloat(value);
|
||||||
value = String.format(Locale.US, "%3.1f", inch * 0.0254f);
|
value = String.format(Locale.US, "%3.1f", inch * 0.0254f);
|
||||||
} else if (valueLowerCase.contains("feet") || valueLowerCase.contains("foot")) {
|
} else if (value.contains("feet") || value.contains("foot")) {
|
||||||
float feet = 0f;
|
float feet = 0f;
|
||||||
String s = value.substring(0, valueLowerCase.indexOf("f"));
|
String s = value.substring(0, value.indexOf("f"));
|
||||||
feet = Float.parseFloat(s.trim());
|
feet = Float.parseFloat(s);
|
||||||
value = String.format(Locale.US, "%3.1f", feet * 0.3048f);
|
value = String.format(Locale.US, "%3.1f", feet * 0.3048f);
|
||||||
} else if (valueLowerCase.contains("fathom") || valueLowerCase.contains("fm")) {
|
} else if (value.contains("fathom") || value.contains("fm")) {
|
||||||
String s = value.substring(0, valueLowerCase.indexOf("f"));
|
String s = value.substring(0, value.indexOf("f"));
|
||||||
float fathom = Float.parseFloat(s.trim());
|
float fathom = Float.parseFloat(s);
|
||||||
value = String.format(Locale.US, "%3.1f", fathom * 1.8288f);
|
value = String.format(Locale.US, "%3.1f", fathom * 1.8288f);
|
||||||
} else if (valueLowerCase.contains("cm")) {
|
} else if (value.contains("cm")) {
|
||||||
String[] sa = valueLowerCase.trim().split("cm");
|
String[] sa = value.split("cm");
|
||||||
if (sa.length >= 1) value = sa[0].trim();
|
if (sa.length >= 1) value = sa[0];
|
||||||
float cm = Float.parseFloat(value.trim());
|
float cm = Float.parseFloat(value);
|
||||||
value = String.format(Locale.US, "%3.1f", cm / 100f);
|
value = String.format(Locale.US, "%3.1f", cm / 100f);
|
||||||
} else if (valueLowerCase.contains("meter")) {
|
} else if (value.contains("meter")) {
|
||||||
String s = value.substring(0, valueLowerCase.indexOf("m"));
|
value = value.substring(0, value.indexOf("m"));
|
||||||
value = s.trim();
|
} else if (value.toLowerCase().contains("mph")) {
|
||||||
} else if (valueLowerCase.contains("mph")) {
|
String[] sa = value.split("mph");
|
||||||
String[] sa = valueLowerCase.trim().split("mph");
|
if (sa.length >= 1) value = sa[0];
|
||||||
if (sa.length >= 1) value = sa[0].trim();
|
float mph = Float.parseFloat(value);
|
||||||
float mph = Float.parseFloat(value.trim());
|
|
||||||
value = String.format(Locale.US, "%3.1f", mph * 1.609344f);
|
value = String.format(Locale.US, "%3.1f", mph * 1.609344f);
|
||||||
} else if (valueLowerCase.contains("knot")) {
|
} else if (value.contains("knot")) {
|
||||||
String[] sa = valueLowerCase.trim().split("knot");
|
String[] sa = value.split("knot");
|
||||||
if (sa.length >= 1) value = sa[0].trim();
|
if (sa.length >= 1) value = sa[0];
|
||||||
float nm = Float.parseFloat(value.trim());
|
float nm = Float.parseFloat(value);
|
||||||
value = String.format(Locale.US, "%3.1f", nm * 1.852f);
|
value = String.format(Locale.US, "%3.1f", nm * 1.852f);
|
||||||
} else if (valueLowerCase.contains("kmh") || valueLowerCase.contains("km/h") || valueLowerCase.contains("kph")) {
|
} else if (value.contains("kmh") || value.contains("km/h") || value.contains("kph")) {
|
||||||
String[] sa = valueLowerCase.trim().split("k");
|
String[] sa = value.split("k");
|
||||||
if (sa.length > 1) value = sa[0].trim();
|
if (sa.length > 1) value = sa[0];
|
||||||
} else if (valueLowerCase.contains("m")) {
|
} else if (value.contains("m")) {
|
||||||
String s = value.substring(0, valueLowerCase.indexOf("m"));
|
value = value.substring(0, value.indexOf("m"));
|
||||||
value = s.trim();
|
|
||||||
} else if (value.contains("(")) {
|
} else if (value.contains("(")) {
|
||||||
String s = value.substring(0, valueLowerCase.indexOf("("));
|
value = value.substring(0, value.indexOf("("));
|
||||||
value = s.trim();
|
|
||||||
}
|
}
|
||||||
// found negative maxdraft values
|
// found negative maxdraft values
|
||||||
// no negative values
|
// no negative values
|
||||||
|
|
Loading…
Reference in a new issue