nafis nibir 8 年之前
父節點
當前提交
f86d2207b9
共有 2 個文件被更改,包括 33 次插入11 次删除
  1. 26
    11
      StringArrayUtils.java
  2. 7
    0
      StringArrayUtilsTest.java

+ 26
- 11
StringArrayUtils.java 查看文件

145
         return revisedArray;
145
         return revisedArray;
146
     }
146
     }
147
 
147
 
148
+    public static String[] sortArray(String[] array){
149
+        String[] sorted = new String[array.length];
150
+        Arrays.sort(sorted);
151
+        return sorted;
152
+    }
153
+    
148
     /**
154
     /**
149
      * @param array array of chars
155
      * @param array array of chars
150
      * @return array of Strings with consecutive duplicates removes
156
      * @return array of Strings with consecutive duplicates removes
151
      */ // TODO
157
      */ // TODO
152
     public static String[] removeConsecutiveDuplicates(String[] array) {
158
     public static String[] removeConsecutiveDuplicates(String[] array) {
153
-        
154
-        for(int i = 0; i < array.length-2; i++){
155
-            if (array[i].equals(array[i+1])){
156
-                array[i+1]= null;    
157
-            }
159
+        int dupes = countDuplicates(array);
160
+        String[] revisedArr = new String[array.length-dupes];
161
+        int j = 0;
162
+        for(int i = 0; i < array.length-1; i++){
163
+            if (array[i]!=(array[i+1])){
164
+                revisedArr[j] = array[i];
165
+                j++;
166
+            } 
158
         }
167
         }
159
-        removeValue(array, null);
160
-        return array;
168
+        revisedArr[revisedArr.length-1]=array[array.length-1];
169
+        return revisedArr;
161
     }
170
     }
162
     
171
     
163
-    public static String[] sortArray(String[] array){
164
-        
165
-        
172
+    public static int countDuplicates(String[] array){
173
+        String[] newArray = array;   
174
+        int counter = 0;
175
+        for(int i = 0; i < newArray.length-1; i++){
176
+            if (newArray[i].equals(newArray[i+1])){
177
+                counter++;   
178
+            }
179
+        }
180
+        return counter;
166
     }
181
     }
167
-
182
+    
168
     /**
183
     /**
169
      * @param array array of chars
184
      * @param array array of chars
170
      * @return array of Strings with each consecutive duplicate occurrence concatenated as a single string in an array of Strings
185
      * @return array of Strings with each consecutive duplicate occurrence concatenated as a single string in an array of Strings

+ 7
- 0
StringArrayUtilsTest.java 查看文件

366
 
366
 
367
 
367
 
368
 
368
 
369
+    @Test
370
+    public void testCountDuplicates(){
371
+        String[] array = {"aba", "aba", "baa", "bab", "bab", "dog"};
372
+        int expected = 2;
373
+        int actual = StringArrayUtils.countDuplicates(array);
374
+        Assert.assertEquals(actual,expected);
369
 
375
 
376
+    }
370
 
377
 
371
 
378
 
372
 
379