用JAVA写一个程序找出2个字符串中所有相同的字符
解决方案 »
- 菜鸟级容器遍历
- 请问一个String数组最多可以放入多少个元素?
- 为何两个相同的String,比较结果却是False??
- 没有.h文件的情况下用java调用dll,而且这个dll是别人用jni做的,有可以调用这个dll的java类,但是该类没有package
- 非常非常简单的问题(续)!
- 为什么这样子找不到自定义的包呢?
- 关于正则表达是的问题
- 求教:如何取得日期并将其安要求转换为字符串!
- 我已经完全安装了JDK1.3,但是我的IE是6.0办的,听说没有JAVA虚拟机,不知我的IE能不能运行JAVA程序?是不是一定要装IE6以下的?
- 急,急....怎样设定TextField的掩码形式?
- 放分加求助
- tomcat6.0的虚拟目录问题
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);
}
}
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