Util.java Source code

Java tutorial

Introduction

Here is the source code for Util.java

Source

public class Util {

    public static String longestStartingMatch(String source1, String source2) {
        /**
         * I starting with the regex lookingAt() but it wasn't working for the test
         * cases I had (comparison of BigDecimals... DaC seems to work ok.
         */

        int min = 0;
        int max = source1.length();
        int cur = max / 2;
        while (true) {
            if (source2.regionMatches(0, source1, 0, cur)) {
                min = cur;
                cur += (max - cur) / 2;
                if (cur == min) {
                    if (source2.regionMatches(0, source1, 0, max))
                        cur = max;

                    break;
                }
            } else {
                max = cur;
                cur -= (cur - min) / 2;
                if (cur == max) {
                    if (source2.regionMatches(0, source1, 0, min))
                        cur = min;

                    break;
                }
            }
        }

        return source2.substring(0, cur);
    }
}