How to merge two strings based on shared suffix and prefix in Java

1 Answer

0 votes
public class mergeStringsOnOverlap {
    public static String mergeOnOverlap(String a, String b) {
        int lenA = a.length();
        int lenB = b.length();
    
        int maxPossibleOverlapLen = Math.min(lenA, lenB);
    
        int overlap = 0;
    
        // Try longest overlap first
        for (int len = maxPossibleOverlapLen; len > 0; len--) {
            if (a.regionMatches(lenA - len, b, 0, len)) {
                overlap = len;
                break;
            }
        }
    
        return a + b.substring(overlap);
    }

    public static void main(String[] args) {
        String a = "fantasy time travel technology";
        String b = "technology extraterrestrial life";
    
        System.out.println(mergeOnOverlap(a, b));
    }
}



/*
run:
 
fantasy time travel technology extraterrestrial life
 
*/

 



answered Jan 23 by avibootz
edited Jan 23 by avibootz
...