用JAVA写一个程序找出2个字符串中所有相同的字符

解决方案 »

  1.   

    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);
    }
    }
      

  2.   

    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