获取字符串公共部分

21 阅读1分钟

获取字符串公共部分,主要实际应用是在查询类似区域有上下级关系的一些复杂处理的时候
一般会有一个字段为path 作为父级路径的存储

public class Main2 {


    public static void main(String[] ags) {


        List<String> stringList = Arrays.asList("1,2,3", "1,2,3,4", "1,2,3,4,5");


        String temp = null;
        for (String item : stringList) {


            if (temp == null) {
                temp = item;
                continue;
            }

            String[] temps = temp.split(",");
            String[] items = item.split(",");

            StringBuffer stringBuffer = new StringBuffer();
            for (String te : temps) {
                boolean flag = false;
                for (String it : items) {
                    if (it.equals(te)) {
                        flag = true;
                    }
                }
                if (flag) {
                    stringBuffer.append(te).append(",");
                }
            }

            temp = stringBuffer.substring(0, stringBuffer.length() - 1);

        }

        System.out.println(temp);

    }

这是为了寻某些区域的共同父级有什么,然后取最小父级作为定点

附上一个类似这种 用sql 查询所有子类的sql(自己写的)

SELECT *
FROM  `basic_area` 
WHERE path LIKE '%1%' 
AND LENGTH(`path`)>= (SELECT LENGTH(COALESCE(path,'')) FROM `basic_area` WHERE id= '1')
AND delete_status = 0 OR id = '1'
```

1 为区域id 
path 为 所有父级路径的逗号拼接字符串

符合这种设计的表,才可以,否则就需要递归,或者另寻他法.

本文转自 jimolvxing.blog.csdn.net/article/det…,如有侵权,请联系删除。