递归自增小工具
最近开发需求遇到一个奇葩需求,用户重复上传文档,需要生成一个副本,比如用户上传了个a.pdf,然后又上传了a.pdf最后一个需要为a-副本.pdf。
好了,活干完了,开发找到产品,说要是在原来副本的基础上又上传一个a-副本.pdf,要生成a-副本-副本.pdf吗?产品傻了。我们给产品像个策略。重复的以后缀递增的方式保存。
a.pdf,有重复的为a-1.pdf,还有重复的依次为a-2.pdf,a-3.pdf 。。。。。n
完成后代码如下:
public String getUniqueFileName(String originalFileName) {
Long aLong = existWorkResult(originalFileName);
if (ObjectUtils.isEmpty(aLong) || aLong.intValue() <= 0) {
return originalFileName;
}
String baseName = originalFileName.substring(0, originalFileName.lastIndexOf('.'));
String extension = originalFileName.substring(originalFileName.lastIndexOf('.'));
int count = 1;
String newFileName;
do {
newFileName = baseName + "-" + count + extension;
Long aLong0 = existWorkResult(newFileName);
if (ObjectUtils.isEmpty(aLong0) || aLong0.intValue() <= 0) {
break;
}
count++;
} while (true);
return newFileName;
}
使用场景不一定是文件名称,在数据库有主键自增,但要是不在数据库中该怎么办?比如我连续签到几天送个小奖品,出现短签从零开始,也可以使用,当然了也可以使用redis自增
本文来自博客园,作者:余生请多指教ANT,转载请注明原文链接:https://www.cnblogs.com/wangbiaohistory/p/18600895

浙公网安备 33010602011771号