Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public static final UnaryOperator<String> encode_1 = in -> {
- int length = in.length();
- if (length < 2)
- return in;
- StringBuilder out = new StringBuilder(length + 1);
- int counter = 0;
- int check;
- char compare;
- for (int place = 0; place < length; place++) {
- compare = in.charAt(place);
- check = place + 1;
- if (length > check && compare == in.charAt(check)) {
- counter++;
- continue;
- }
- if (counter == 0)
- out.append(compare);
- else if (counter == 1) {
- out.append(compare);
- out.append(compare);
- } else {
- out.append(counter + 1);
- out.append(compare);
- }
- counter = 0;
- }
- return out.toString();
- };
- public static final UnaryOperator<String> decode_0 = in -> {
- int length = in.length();
- if (length < 2)
- return in;
- StringBuilder out = new StringBuilder(length * 4);
- for (int count = 0; count < length; count++) {
- if (!Character.isDigit(in.charAt(count))) {
- out.append(in.charAt(count));
- continue;
- }
- int start = count;
- while (Character.isDigit(in.charAt(count)))
- count++;
- for (int j = 0; j < Integer.parseInt(in.substring(start, count), 10); j++)
- out.append(in.charAt(count));
- }
- return out.toString();
- };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement