mhhhh!!ho capito quello che mi proponi,ma mi sarebbe utile se potresti scrivermi qualche riga di codice per focalizzare i punti cruciali da cui partire!!
per adesso ho fatto questootrebbe andare??

codice:
public abstract class Msc implements Comparable{
		private String I1;
		private String I2;
		
		public Msc(String I1,String I2){
			this.I1=I1;
			this.I2=I2;
		}
		public String getStringaI1(){
			return I1;
		}
		public String getStringaI2(){
			return I2;
		}
		public int lunghezza(){
			return longestCommonSubstring(I1,I2);
		}
		public int compareTo(Msc obj){
			Integer lunghezza=lunghezza();
			return lunghezza.compareTo(obj.lunghezza());
		}
		public static int longestCommonSubstring(String str1, String str2){
			
			if((str1==null && str1.length()==0) || (str2==null && str2.length()==0))
	            return 0;
	        int[][] num = new int[str1.length()][ str2.length()];
	        int maxlen = 0;
	        
	        for (int i = 0; i < str1.length();i++){
			   for (int j = 0; j < str2.length(); j++){
				   if (str1.charAt(i) != str2.charAt(j))
	                            num[i][ j] = 0;
	                            else{
									if ((i == 0) || (j == 0))
	                                    num[i][ j] = 1;
	                                    else
	                                    num[i][ j] = 1 + num[i - 1][ j - 1];

	                                    if (num[i][ j] > maxlen){
											maxlen = num[i][j];
	                                      
	                                    }
								}
	          }
	      }
	      return maxlen;
		}
	
	
	}
ma adesso??:master: