找出2个字符串中所有相同的字符
用JAVA写一个程序找出2个字符串中所有相同的字符
------解决方案--------------------public class Test29 { 
 	public static void main(String[] args) { 
 		String s1 =  "34232fff "; 
 		String s2 =  "f3dx4 "; 
 		StringBuilder result = new StringBuilder(); 
 		while(!s2.equals( " ")) { 
 			String subs = s2.substring(0, 1); 
 			s2 = s2.replaceAll(subs,  " "); 
 			int length = s1.length(); 
 			s1 = s1.replaceAll(subs,  " "); 
 			if(s1.length()  < length) 
 				result.append(subs); 
 		} 
 		System.out.println(result); 
 	} 
 }
------解决方案--------------------package test;   
 import java.util.ArrayList; 
 import java.util.Iterator; 
 import java.util.List; 
 import java.util.Map; 
 import java.util.TreeMap; 
 import java.util.Map.Entry;   
 public class StringPattern { 
 public static void main(String[] args) { 
 getMaxPattern( "abcdefg ",  "babcefg "); 
 }   
 public static void getMaxPattern(String strA, String strB) { 
 // 只要有一个null,就返回null 
 if (strA == null || strB == null || strA.trim().equals( " ") 
 || strB.trim().equals( " ")) { 
 System.out.println( " "); 
 return; 
 } 
 int lengthA = strA.length(); 
 int lengthB = strB.length(); 
 String longStr = lengthA >  lengthB ? strA : strB; 
 String shortStr = lengthA >  lengthB ? strB : strA; 
 Map <Integer, List <String> >  maxSubstrList = new TreeMap <Integer, List <String> > (); 
 for (int length = shortStr.length(); length > = 0; length--) { 
 for (int startIndex = 0; startIndex  <= shortStr.length() - length; startIndex++) { 
 String substr = shortStr.substring(startIndex, startIndex 
 + length); 
 if (longStr.indexOf(substr) >  -1) { 
 int len = substr.length(); 
 List <String>  list; 
 if (maxSubstrList.containsKey(len)) { 
 list = (List <String> ) maxSubstrList.get(len); 
 } else { 
 list = new ArrayList <String> (); 
 } 
 if (!list.contains(substr)) { 
 list.add(substr); 
 } 
 maxSubstrList.put(len, list); 
 } 
 } 
 } 
 // 找到最大匹配子串 
 if (maxSubstrList.size() == 0) { 
 return; 
 } else { 
 Iterator <Entry <Integer, List <String> > >  it = maxSubstrList 
 .entrySet().iterator(); 
 Entry <Integer, List <String> >  entry = it.next(); 
 while (it.hasNext()) { 
 entry = it.next(); 
 List <String>  maxList = entry.getValue(); 
 for (String str : maxList) { 
 System.out.println(str); 
 } 
 } 
 } 
 } 
 }   
 输出结果: 
 a 
 b 
 c 
 e 
 f 
 g 
 ab 
 bc 
 ef 
 fg 
 abc 
 efg