if(c>=0){
setFillIn.add(c);
} else {
- String normalizedString=""; // String for composite characters
+ StringBuilder normalizedStringBuilder = new StringBuilder();
for(int j=0; j<length;j++){
- normalizedString+=s[j];
+ normalizedStringBuilder.append(s[j]);
}
+ String normalizedString = normalizedStringBuilder.toString();
for(int j=0;j<length;j++){
setFillIn.add(normalizedString);
}
-
}
}
FROM_U_GET_PARTIAL_INDEX(value));
} else if ((useFallback ? (value&FROM_U_RESERVED_MASK)==0:((value&(FROM_U_ROUNDTRIP_FLAG|FROM_U_RESERVED_MASK))==FROM_U_ROUNDTRIP_FLAG))
&& FROM_U_GET_LENGTH(value)>=minLength) {
- String normalizedString=""; // String for composite characters
+ StringBuilder normalizedStringBuilder = new StringBuilder(); // String for composite characters
for(int j=0; j<(length+1);j++){
- normalizedString+=s[j];
+ normalizedStringBuilder.append(s[j]);
}
- setFillIn.add(normalizedString);
+ setFillIn.add(normalizedStringBuilder.toString());
}
}
newPattern.append(fp.quoteLiteral((String)item));
} else {
final VariableField variableField = (VariableField) item;
- String field = variableField.toString();
+ StringBuilder fieldBuilder = new StringBuilder(variableField.toString());
// int canonicalIndex = getCanonicalIndex(field, true);
// if (canonicalIndex < 0) {
// continue; // don't adjust
if (fixFractionalSeconds && type == SECOND) {
String newField = inputRequest.original[FRACTIONAL_SECOND];
- field = field + decimal + newField;
+ fieldBuilder.append(decimal);
+ fieldBuilder.append(newField);
} else if (inputRequest.type[type] != 0) {
// Here:
// - "reqField" is the field from the originally requested skeleton, with length
if ( (type == HOUR && (options & MATCH_HOUR_FIELD_LENGTH)==0) ||
(type == MINUTE && (options & MATCH_MINUTE_FIELD_LENGTH)==0) ||
(type == SECOND && (options & MATCH_SECOND_FIELD_LENGTH)==0) ) {
- adjFieldLen = field.length();
+ adjFieldLen = fieldBuilder.length();
} else if (matcherWithSkeleton != null) {
String skelField = matcherWithSkeleton.origStringForField(type);
int skelFieldLen = skelField.length();
boolean skelFieldIsNumeric = matcherWithSkeleton.fieldIsNumeric(type);
if (skelFieldLen == reqFieldLen || (patFieldIsNumeric && !skelFieldIsNumeric) || (skelFieldIsNumeric && !patFieldIsNumeric)) {
// don't adjust the field length in the found pattern
- adjFieldLen = field.length();
+ adjFieldLen = fieldBuilder.length();
}
}
- char c = (type != HOUR && type != MONTH && type != WEEKDAY)? reqField.charAt(0): field.charAt(0);
- field = "";
- for (int i = adjFieldLen; i > 0; --i) field += c;
+ char c = (type != HOUR && type != MONTH && type != WEEKDAY)? reqField.charAt(0): fieldBuilder.charAt(0);
+ fieldBuilder = new StringBuilder();
+ for (int i = adjFieldLen; i > 0; --i) fieldBuilder.append(c);
}
- newPattern.append(field);
+ newPattern.append(fieldBuilder);
}
}
//if (SHOW_DISTANCE) System.out.println("\tRaw: " + pattern);