- public class StringTest3 {
- public static void main(String[] args) {
- String s1 = "sadabcdfghjkl";
- String s2 = "werabcdtyu";
- // 写一个功能,返回一个子串
- String subString = getSubString(s1, s2);
- System.out.println("两个串中的最大子串是:"+subString);
- }
- private static String getSubString(String s1, String s2) {
- // 如果得到s1和s2中的较大的串呢
- String maxString, minString;
- // 通过三元运算符得到较大的字符串赋值给maxString
- maxString = s1.length() > s2.length() ? s1 : s2;
- // 得到较小的串
- minString = (maxString.equals(s1)) ? s2 : s1;
- // System.out.println(maxString+"***"+minString);
- for (int x = 0; x < minString.length(); x++) {
- for (int start = 0, end = minString.length() - x; end <= minString.length(); start++, end++) {
- String temp = minString.substring(start, end);
- if (maxString.contains(temp)) {
- return temp;
- }
- }
- }
- //如果没有找到,说明没有相同的字符
- return null;
- }
- }
复制代码 楼主,这个效率会稍微高一点:请参考
|