private static String adressReplace(String adress) { if (StringUtils.isBlank(adress)) { return ""; } else { int length = adress.length(); String vagueAdress = ""; if (length > 15) { vagueAdress = adress.substring(6, 14); } else if (length > 5) { vagueAdress = adress.substring(3, length); } else if (length > 4) { vagueAdress = adress.substring(1, 4); } else if (length > 3) { vagueAdress = adress.substring(1, 3); } else if (length > 2) { vagueAdress = adress.substring(1, 2); } else if (length > 1) { vagueAdress = adress.substring(1, 2); } else if (length == 1) { vagueAdress = ""; } else { vagueAdress = adress; } return replaceAction(adress, vagueAdress); } }作用
时间: 2024-02-14 22:35:29 浏览: 444
这段代码是 `adressReplace()` 方法的具体实现,其作用是对地址信息进行脱敏处理。
首先,方法中判断传入的地址信息是否为空,如果为空则直接返回空字符串。
接着,根据地址信息的长度,分别使用不同的方式获取脱敏后的地址信息。具体来说,如果地址信息的长度大于15,则截取地址信息的第6到第14个字符;如果地址信息的长度在5到15之间,则截取地址信息的第3个字符到末尾;如果地址信息的长度在4到5之间,则截取地址信息的第1个字符到第4个字符;以此类推。
最后,调用 `replaceAction()` 方法进行替换操作,将原始地址信息中的被截取的部分替换为脱敏后的地址信息,并将处理后的地址信息返回。
需要注意的是,这段代码只是一个示例,具体的脱敏逻辑和实现方式要根据具体的业务需求来确定。
相关问题
private String adressReplace(String adress) { if (StringUtils.isBlank(adress)) { return ""; } int length = adress.length(); String vagueAdress = ""; if (length > 15) { vagueAdress = adress.substring(6, 14); } else if (length > 5) { vagueAdress = adress.substring(3, length); } else if (length > 4) { vagueAdress = adress.substring(1, 4); } else if (length > 3) { vagueAdress = adress.substring(1, 3); } else if (length > 2) { vagueAdress = adress.substring(1, 2); } else if (length > 1) { vagueAdress = adress.substring(1, 2); } else if (length == 1) { vagueAdress = ""; } else { vagueAdress = adress; } return replaceAction(adress, vagueAdress); }解析
这是 `desensitive` 方法中调用的一个私有方法,用于将地址信息脱敏。该方法接收一个字符串 `adress` 作为输入,并返回一个经过脱敏处理的字符串。
具体的脱敏操作如下:
1. 如果 `adress` 是空字符串或 null,则返回空字符串。
2. 如果 `adress` 的长度大于 15,则从第 7 个字符开始取 8 个字符作为模糊地址信息,其余字符替换为 *。
3. 如果 `adress` 的长度在 6 到 15 之间,则把地址信息的前三个字符替换为 *,其余字符不变。
4. 如果 `adress` 的长度在 5 到 6 之间,则把地址信息的前两个字符替换为 *,其余字符不变。
5. 如果 `adress` 的长度在 4 到 5 之间,则把地址信息的第二个字符替换为 *,其余字符不变。
6. 如果 `adress` 的长度在 3 到 4 之间,则把地址信息的第二个字符替换为 *,其余字符不变。
7. 如果 `adress` 的长度在 2 到 3 之间,则把地址信息的第二个字符替换为 *,其余字符不变。
8. 如果 `adress` 的长度为 1,则返回空字符串。
9. 如果 `adress` 的长度为 0,则返回 `adress` 本身。
最后,经过上述处理,返回一个脱敏后的字符串。
update exhibitor e set e.province = s. proovince,e.city = s.city,e.area = s.area,e.adress = s.adress,e.content = s.content from exhibitor e join Sheet1 s on e.company_name = s.company_name where e.company_name = s.company_name为什么不对,怎么修改
你的SQL语句中使用了内连接(INNER JOIN),因此只会更新exhibitor表中与Sheet1表匹配的行。如果exhibitor表中有一些公司名在Sheet1表中不存在,则这些行不会被更新。
如果你想要更新exhibitor表中所有的行的省份、城市、地区、地址和内容,可以使用左外连接(LEFT JOIN)来实现。具体的SQL语句如下:
```
UPDATE exhibitor e
SET e.province = s.province, e.city = s.city, e.area = s.area, e.address = s.address, e.content = s.content
FROM exhibitor e
LEFT JOIN Sheet1 s
ON e.company_name = s.company_name;
```
这个SQL语句将会更新exhibitor表中所有的行,如果在Sheet1表中没有匹配的记录,则相应的列会被设置为NULL。注意,这个语句中使用了LEFT JOIN来连接exhibitor和Sheet1两张表。
希望这个回答能够解决你的问题。
阅读全文