Advertisement
GenuineSounds

bfmin.java

Mar 15th, 2015
225
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.19 KB | None | 0 0
  1. public static final UnaryOperator<String> encode_1 = in -> {
  2.     int length = in.length();
  3.     if (length < 2)
  4.         return in;
  5.     StringBuilder out = new StringBuilder(length + 1);
  6.     int counter = 0;
  7.     int check;
  8.     char compare;
  9.     for (int place = 0; place < length; place++) {
  10.         compare = in.charAt(place);
  11.         check = place + 1;
  12.         if (length > check && compare == in.charAt(check)) {
  13.             counter++;
  14.             continue;
  15.         }
  16.         if (counter == 0)
  17.             out.append(compare);
  18.         else if (counter == 1) {
  19.             out.append(compare);
  20.             out.append(compare);
  21.         } else {
  22.             out.append(counter + 1);
  23.             out.append(compare);
  24.         }
  25.         counter = 0;
  26.     }
  27.     return out.toString();
  28. };
  29.  
  30.  
  31. public static final UnaryOperator<String> decode_0 = in -> {
  32.     int length = in.length();
  33.     if (length < 2)
  34.         return in;
  35.     StringBuilder out = new StringBuilder(length * 4);
  36.     for (int count = 0; count < length; count++) {
  37.         if (!Character.isDigit(in.charAt(count))) {
  38.             out.append(in.charAt(count));
  39.             continue;
  40.         }
  41.         int start = count;
  42.         while (Character.isDigit(in.charAt(count)))
  43.             count++;
  44.         for (int j = 0; j < Integer.parseInt(in.substring(start, count), 10); j++)
  45.             out.append(in.charAt(count));
  46.     }
  47.     return out.toString();
  48. };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement