Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public static String formatBrainFuck(String input) {
- input = input.replaceAll("[\r\n\t ]+", "");
- StringBuilder builder = new StringBuilder(input);
- int layer = 0;
- int[] layers = new int[input.length()];
- for (int index = 0; index < builder.length(); index++) {
- char c = builder.charAt(index);
- if (c == '[')
- layers[index] = ++layer;
- else if (c == ']')
- layers[index] = --layer;
- else
- layers[index] = layer;
- }
- for (layer = 0; layer < Arrays.stream(layers).max().orElse(0); layer++) {
- builder.append('\n');
- boolean open = false;
- for (int index = 0; index < layers.length; index++) {
- if (layer < layers[index])
- if (!open) {
- builder.append('[');
- open = true;
- } else
- builder.append('_');
- else {
- if (open) {
- builder.append(']');
- open = false;
- } else
- builder.append(' ');
- }
- }
- }
- return builder.toString();
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement