public class Kleber {
	public static String verklebe(String a, String b) {
		if (b.length() < a.length()) {
			String tmp = a;
			a = b;
			b = tmp;
		}

		assert(a.length() <= b.length());
		
		if (b.indexOf(a) >= 0)
			return b;
		for (int i = a.length(); i >= 1; i--) {
			String subl_a = a.substring(0,i);
			String subr_b = b.substring(b.length() - i);
			if (subl_a.equals(subr_b)) 
				return b + a.substring(i);
			String subr_a = a.substring(a.length() - i);
			String subl_b = b.substring(0,i);
			if (subr_a.equals(subl_b))
				return a.substring(0,a.length() - i) + b;
		}
		return a + b;
	}
	
	/**
	 * Beispiel-Verwendungen
	 */
	public static void main(String[] args) {
		System.out.println(Kleber.verklebe("abcdef","cdefghijklmno"));
		System.out.println(Kleber.verklebe("mn","cdefghijklmno"));
		System.out.println(Kleber.verklebe("mnopqrst","cdefghijklmno"));
		System.out.println(Kleber.verklebe("z","cdefghijklmno"));
		System.out.println(Kleber.verklebe("ababa","abc"));
		System.out.println(Kleber.verklebe("c#ab#", "acb"));	
	}
}
