|
|
@@ -121,7 +121,16 @@ public class StringArrayUtils {
|
|
121
|
121
|
* @return number of occurrences the specified `value` has occurred
|
|
122
|
122
|
*/ // TODO
|
|
123
|
123
|
public static int getNumberOfOccurrences(String[] array, String value) {
|
|
124
|
|
- return 0;
|
|
|
124
|
+
|
|
|
125
|
+ int result = 0;
|
|
|
126
|
+
|
|
|
127
|
+ for (String s : array) {
|
|
|
128
|
+ if (s.equals(value)) {
|
|
|
129
|
+ result++;
|
|
|
130
|
+ }
|
|
|
131
|
+ }
|
|
|
132
|
+
|
|
|
133
|
+ return result;
|
|
125
|
134
|
}
|
|
126
|
135
|
|
|
127
|
136
|
/**
|
|
|
@@ -130,7 +139,20 @@ public class StringArrayUtils {
|
|
130
|
139
|
* @return array with identical contents excluding values of `value`
|
|
131
|
140
|
*/ // TODO
|
|
132
|
141
|
public static String[] removeValue(String[] array, String valueToRemove) {
|
|
133
|
|
- return null;
|
|
|
142
|
+
|
|
|
143
|
+ String[] result1 = new String[array.length];
|
|
|
144
|
+ int i = 0;
|
|
|
145
|
+
|
|
|
146
|
+ for (String s : array) {
|
|
|
147
|
+ if(!s.equals(valueToRemove)) {
|
|
|
148
|
+ result1[i] = s;
|
|
|
149
|
+ i++;
|
|
|
150
|
+ }
|
|
|
151
|
+ }
|
|
|
152
|
+
|
|
|
153
|
+ String[] result2 = Arrays.copyOf(result1, i);
|
|
|
154
|
+
|
|
|
155
|
+ return result2;
|
|
134
|
156
|
}
|
|
135
|
157
|
|
|
136
|
158
|
/**
|
|
|
@@ -138,7 +160,23 @@ public class StringArrayUtils {
|
|
138
|
160
|
* @return array of Strings with consecutive duplicates removes
|
|
139
|
161
|
*/ // TODO
|
|
140
|
162
|
public static String[] removeConsecutiveDuplicates(String[] array) {
|
|
141
|
|
- return null;
|
|
|
163
|
+
|
|
|
164
|
+ String[] result1 = new String[array.length];
|
|
|
165
|
+ String lastValue = "";
|
|
|
166
|
+ int numb = 0;
|
|
|
167
|
+
|
|
|
168
|
+ for (int i = 0; i < array.length; i++) {
|
|
|
169
|
+ if (!array[i].equals(lastValue)) {
|
|
|
170
|
+ lastValue = array[i];
|
|
|
171
|
+ result1[numb] = array[i];
|
|
|
172
|
+ numb++;
|
|
|
173
|
+ }
|
|
|
174
|
+ }
|
|
|
175
|
+
|
|
|
176
|
+ String[] result2 = Arrays.copyOf(result1, numb);
|
|
|
177
|
+
|
|
|
178
|
+
|
|
|
179
|
+ return result2;
|
|
142
|
180
|
}
|
|
143
|
181
|
|
|
144
|
182
|
/**
|
|
|
@@ -146,7 +184,29 @@ public class StringArrayUtils {
|
|
146
|
184
|
* @return array of Strings with each consecutive duplicate occurrence concatenated as a single string in an array of Strings
|
|
147
|
185
|
*/ // TODO
|
|
148
|
186
|
public static String[] packConsecutiveDuplicates(String[] array) {
|
|
149
|
|
- return null;
|
|
|
187
|
+
|
|
|
188
|
+ String[] result1 = new String[array.length];
|
|
|
189
|
+ String lastValue = array[0];
|
|
|
190
|
+ String running = array[0];
|
|
|
191
|
+ int numb = 0;
|
|
|
192
|
+
|
|
|
193
|
+ for (int i = 1; i < array.length; i++) {
|
|
|
194
|
+ if (!array[i].equals(lastValue)) {
|
|
|
195
|
+ lastValue = array[i];
|
|
|
196
|
+ result1[numb] = running;
|
|
|
197
|
+ running = array[i];
|
|
|
198
|
+ numb++;
|
|
|
199
|
+ } else {
|
|
|
200
|
+ running = running + array[i];
|
|
|
201
|
+ }
|
|
|
202
|
+ }
|
|
|
203
|
+
|
|
|
204
|
+ result1[numb] = running;
|
|
|
205
|
+
|
|
|
206
|
+ String[] result2 = Arrays.copyOf(result1, numb+1);
|
|
|
207
|
+
|
|
|
208
|
+
|
|
|
209
|
+ return result2;
|
|
150
|
210
|
}
|
|
151
|
211
|
|
|
152
|
212
|
|