java String類-獲取兩個字串的最長相同子串
阿新 • • 發佈:2019-01-28
/* 獲取兩個字串中最大相同子串。枚舉出長度較短的字串的所有子串。將子串放在字串陣列中。 通過迴圈判斷長度較長的字串中是否包含字串陣列中的元素,並返回包含且最長的子字串。 */ class StringTest4 { public static void main(String[] args) { string_sub("asddghjukihjughjkssfghyj","adhasjkssdghjuoop"); System.out.println("Hello World!"); } public static void string_sub(String str1,String str2) { if(str1.length()>str2.length()) sop(deal(str2,str1)); else sop(deal(str1,str2)); } public static String deal(String str1,String str2) { String[] arr=new String[100000000]; boolean flag=false; String max=""; int k=0; for (int j=0;j<str1.length();j++) { for(int i=j+1;i<=str1.length();i++) arr[k++]=str1.substring(j,i); } for(int i=0;i<k;i++) { if(str2.contains(arr[i])) { flag=true; if(max.length()<arr[i].length()) { max=arr[i]; } } } return flag?max:"不存在公共子串"; } public static void sop(Object obj) { System.out.println(obj); } }