| 198 | } |
| 199 | |
| 200 | public static List<String> splitWS(String s, boolean decode) { |
| 201 | ArrayList<String> lst = new ArrayList<>(2); |
| 202 | StringBuilder sb = new StringBuilder(); |
| 203 | int pos = 0, end = s.length(); |
| 204 | while (pos < end) { |
| 205 | char ch = s.charAt(pos++); |
| 206 | if (Character.isWhitespace(ch)) { |
| 207 | if (sb.length() > 0) { |
| 208 | lst.add(sb.toString()); |
| 209 | sb = new StringBuilder(); |
| 210 | } |
| 211 | continue; |
| 212 | } |
| 213 | |
| 214 | if (ch == '\\') { |
| 215 | if (!decode) sb.append(ch); |
| 216 | if (pos >= end) break; // ERROR, or let it go? |
| 217 | ch = s.charAt(pos++); |
| 218 | if (decode) { |
| 219 | switch (ch) { |
| 220 | case 'n': |
| 221 | ch = '\n'; |
| 222 | break; |
| 223 | case 't': |
| 224 | ch = '\t'; |
| 225 | break; |
| 226 | case 'r': |
| 227 | ch = '\r'; |
| 228 | break; |
| 229 | case 'b': |
| 230 | ch = '\b'; |
| 231 | break; |
| 232 | case 'f': |
| 233 | ch = '\f'; |
| 234 | break; |
| 235 | } |
| 236 | } |
| 237 | } |
| 238 | |
| 239 | sb.append(ch); |
| 240 | } |
| 241 | |
| 242 | if (sb.length() > 0) { |
| 243 | lst.add(sb.toString()); |
| 244 | } |
| 245 | |
| 246 | return lst; |
| 247 | } |
| 248 | |
| 249 | public static List<String> toLower(List<String> strings) { |
| 250 | ArrayList<String> ret = new ArrayList<>(strings.size()); |