GenuineSounds icon

Untitled

GenuineSounds | PRO | 02/10/15 08:53:53 AM UTC | 0 ⭐ | 622 👁️ | Never ⏰ | []
Java |

2.45 KB

|

None

|

0 👍

/

0 👎

package com.genuineminecraft.bf;
 
public class BrainFuckeryTest {
 
    public static String test = "++++++++[>++++[>++>+++>+++>+<<<<-]>+>+>->>+[<]<-]>>.>---.+++++++..+++.>>.<-.<.+++.------.--------.>>+.>++.";
 
    public static void main(String[] args) {
        if (args.length > 0)
            test = args[0];
        test = test.replaceAll("[^\\,\\.\\<\\>\\[\\]\\-\\+]", "");
        System.out.println("===================== Time Trials =====================");
        timeTrials();
    }
 
    public static void timeTrials() {
        long start, stop;
        int count = 100000;
        int dCount = 10;
        for (int j = 0; j < dCount; j++) {
            if (j == 0) {
                System.out.println("Info: Running " + count + " times x" + dCount + ".");
                System.out.println("Info: These are the pre-compile results!");
            } else
                System.out.println("Info: These are the post-compile results!");
            start = System.nanoTime();
            for (int i = 0; i < count; i++)
                encode_1(test);
            stop = System.nanoTime();
            System.out.println("Debug Encode 1: " + (stop - start) + " nanoseconds.");
            start = System.nanoTime();
            for (int i = 0; i < count; i++)
                encode_2(test);
            stop = System.nanoTime();
            System.out.println("Debug Encode 2: " + (stop - start) + " nanoseconds.");
        }
    }
 
    private static String encode_1(String in) {
        String out = "";
        int counter = 0;
        for (int place = 0; place < in.length(); place++) {
            char compare = in.charAt(place);
            if (in.length() > place + 1 && compare == in.charAt(place + 1)) {
                counter++;
                continue;
            }
            switch (counter) {
                case 1:
                    out += Character.toString(compare);
                    break;
                case 0:
                    out += Character.toString(compare);
                    break;
                default:
                    out += Integer.toString(counter + 1);
                    out += Character.toString(compare);
                    break;
            }
            counter = 0;
        }
        return out;
    }
 
    private static String encode_2(String in) {
        StringBuilder out = new StringBuilder();
        int counter = 0;
        for (int place = 0; place < in.length(); place++) {
            char compare = in.charAt(place);
            if (in.length() > place + 1 && compare == in.charAt(place + 1)) {
                counter++;
                continue;
            }
            switch (counter) {
                case 1:
                    out.append(Character.toString(compare));
                case 0:
                    out.append(Character.toString(compare));
                    break;
                default:
                    out.append(Integer.toString(counter + 1));
                    out.append(Character.toString(compare));
                    break;
            }
            counter = 0;
        }
        return out.toString();
    }
}

Comments

  •  icon
    01/01/70 12:00:00 AM UTC
    Plain Text |

    0 B

    |

    👍

    /

    👎