]> granicus.if.org Git - icu/commitdiff
ICU-8854 string concatenation in loop using + operator
authorAbhinav Gupta <mail@abhinavg.net>
Mon, 24 Oct 2011 19:24:17 +0000 (19:24 +0000)
committerAbhinav Gupta <mail@abhinavg.net>
Mon, 24 Oct 2011 19:24:17 +0000 (19:24 +0000)
X-SVN-Rev: 30863

icu4j/main/classes/charset/src/com/ibm/icu/charset/CharsetMBCS.java
icu4j/main/classes/core/src/com/ibm/icu/text/DateTimePatternGenerator.java

index 9a1ec64a54856a06f7d0fb6d495a7b6b348099a3..1922807983afcda17e7cb6bc9a92fb9c0badb32b 100644 (file)
@@ -4981,14 +4981,14 @@ class CharsetMBCS extends CharsetICU {
            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);
                }
-             
              }
        }
        
@@ -5003,11 +5003,11 @@ class CharsetMBCS extends CharsetICU {
                        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());
            }
        }
         
index 06491b2534cf1454157cda990fc8f8c273489b57..cf13eb2af2733a82ebb6b5b787b2452b5d2d244f 100644 (file)
@@ -1659,7 +1659,7 @@ public class DateTimePatternGenerator implements Freezable<DateTimePatternGenera
                 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
@@ -1669,7 +1669,8 @@ public class DateTimePatternGenerator implements Freezable<DateTimePatternGenera
 
                 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
@@ -1705,7 +1706,7 @@ public class DateTimePatternGenerator implements Freezable<DateTimePatternGenera
                     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();
@@ -1713,14 +1714,14 @@ public class DateTimePatternGenerator implements Freezable<DateTimePatternGenera
                         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);