/**
* 通过正则获取该目录下满足条件的所有目录
* @param luceneFilePathRegular 正则目录,如/user/solrindex/正则表达式
* @return 满足正则表达式的目录集合 list
*/
public static List<String> fetchDirByRegularLinux(String luceneFilePathRegular){
List<String> list=new ArrayList<>();
//分割获取主目录
int len= luceneFilePathRegular.lastIndexOf(EtlConstants.LINUX_ROUTE_SEGMENT)+;
String mainDir=luceneFilePathRegular.substring(, len);
String regular=luceneFilePathRegular.substring(len,luceneFilePathRegular.length());
File dir=new File(mainDir);
if(dir.exists() && dir.isDirectory()){
File [] arr= dir.listFiles();
for (File file : arr) {
if (file.exists() && file.isDirectory()) {
String fileName = file.getName();
if (matchStr(fileName, regular)) {
list.add(file.getAbsolutePath()+SolrUtil.INDEX_DIR_SUFFIX);
}
}
}
}
if(list.size()>){
LOGGER.info("通过正则匹配到的Solr目录有:");
for (String s : list) {
LOGGER.info(s);
}
}else{
LOGGER.error("路径{}下,不存在满足正则:{}条件的目录", dir, regular);
}
return list;
}
    /**
* @Method Description:按正则表示是匹配字符串
* @param str
* @param regular
* @return
*/
public static Boolean matchStr(String str, String regular) {
Pattern pattern = Pattern.compile(regular);
Matcher matcher = pattern.matcher(str);
return matcher.matches();
} /**
* base的exponent次方
* @param base
* @param exponent
* @return
*/
public static int pow(int base,int exponent){
int result=;
for(int i=;i<exponent;i++){
result=result*base;
}
return result;
}
public static final Map<String, Long> DATE_MAP = new HashMap<String, Long>() {
{
put("month", * * * 24L);
put("day", * * * 24L);
put("hour", * * 60L);
}
};
/**
* 把字符串转化成指定位数size
* 不足,前面补充supplementValue
* 超出,isCutFront为true截取前面的size位
* @param original
* @param size
* @param supplementValue
* @return
*/
public static String supplementStringFront(String original,int size,String supplementValue){
return cutString(original,size,true,supplementValue,true);
}
/** * @param original
* @param size
* @param supplementValue
* @param front
* @return
*/
/**
* 把字符串转化成指定位数size
* 不足,isFrontSupplement为true,前面补充supplementValue,isFrontSupplement为false,后面补充supplementValue
* 超出,isCutFront为true截取前面的size位,isCutFront为false,截取后面的size位
* @param original
* @param size
* @param isFrontSupplement
* @param supplementValue
* @param isCutFront
* @return
*/
public static String cutString(String original,int size,Boolean isFrontSupplement,String supplementValue,Boolean isCutFront){
int length=original.length();
String result = null;
if(length==size){
result=original;
}else if(length<size){
if(isFrontSupplement){
result=supplementValue+original;
while(result.length()<size){
result=supplementValue+result;
}
}else{
result=original+supplementValue;
while(result.length()<size){
result=result+supplementValue;
}
}
}
//length>size
else{
if(isCutFront){
result=original.substring(,size);
}else {
result=original.substring(original.length()-size,original.length());
}
}
return result;
}

最新文章

  1. Css3新特性总结之边框与背景(一)
  2. Win10 UI入门 RenderTransform属性分析之Translate 平移变形
  3. JavaScript的eval函数
  4. Notes on &#39;Efficient Graph-Based Image Segmentation&#39;
  5. jquery中对动态生成的标签响应click事件(一)
  6. 16进制色值转换成RGB
  7. angularJs中筛选功能-angular.filter-1
  8. Sql for Oracle基本操作关键字
  9. Yii2之事件
  10. android开源框架讲解 一 butterknif
  11. centos7破解安装confluence5.9.11
  12. Node.js的模块系统
  13. crontab的定时任务实例
  14. webpack 学习笔记 (一)
  15. Suse系统中不使用SFTP的话,还可以使用lrzsz。
  16. ZooKeeper-基础介绍
  17. 查看tomcat部署的项目名
  18. 文本检测: CTPN
  19. APICloud常用方式
  20. [Elasticsearch] 多字段搜索 (六) - 自定义_all字段,跨域查询及精确值字段

热门文章

  1. DedeCMS中最重要的四类表
  2. 详解ios文件系统文件目录读写操作-备用
  3. Android onActivityResult 设置requestCode 返回的code不对
  4. 我只能说,CDH5真的屌爆了!!!
  5. Altium Designer(Protel)网络连接方式Port和Net Label详解
  6. Xamarin devexpress datagrid 样式
  7. Linux内核源代码解析——TCP状态转移图以及其实现
  8. led驱动程序设计
  9. 读&lt;&lt;如何阅读一本书&gt;&gt;乱七八糟的笔记1
  10. [LeetCode] 116. Populating Next Right Pointers in Each Node 解决思路