Advertisement
GenuineSounds

Untitled

Jan 18th, 2016
78
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 0.90 KB | None | 0 0
  1. public static String formatBrainFuck(String input) {
  2.     input = input.replaceAll("[\r\n\t ]+", "");
  3.     StringBuilder builder = new StringBuilder(input);
  4.     int layer = 0;
  5.     int[] layers = new int[input.length()];
  6.     for (int index = 0; index < builder.length(); index++) {
  7.         char c = builder.charAt(index);
  8.         if (c == '[')
  9.             layers[index] = ++layer;
  10.         else if (c == ']')
  11.             layers[index] = --layer;
  12.         else
  13.             layers[index] = layer;
  14.     }
  15.     for (layer = 0; layer < Arrays.stream(layers).max().orElse(0); layer++) {
  16.         builder.append('\n');
  17.         boolean open = false;
  18.         for (int index = 0; index < layers.length; index++) {
  19.             if (layer < layers[index])
  20.                 if (!open) {
  21.                     builder.append('[');
  22.                     open = true;
  23.                 } else
  24.                     builder.append('_');
  25.             else {
  26.                 if (open) {
  27.                     builder.append(']');
  28.                     open = false;
  29.                 } else
  30.                     builder.append(' ');
  31.             }
  32.         }
  33.     }
  34.     return builder.toString();
  35. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement