22 java常用方法

 /**
     * 通过正则获取该目录下满足条件的所有目录
     * @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)+1;
        String mainDir=luceneFilePathRegular.substring(0, 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()>0){
            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=1;
        for(int i=0;i<exponent;i++){
            result=result*base;
        }
        return result;
    }
public static final Map<String, Long> DATE_MAP = new HashMap<String, Long>() {
        {
            put("month", 1000 * 60 * 60 * 24L);
            put("day", 1000 * 60 * 60 * 24L);
            put("hour", 1000 * 60 * 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(0,size);
            }else {
                result=original.substring(original.length()-size,original.length());
            }
        }
        return  result;
    }
时间: 2024-10-12 20:28:50

22 java常用方法的相关文章

Rhythmk 一步一步学 JAVA (22) JAVA 网络编程

1.获取主机信息 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 @Test     public void GetDomainInfo() throws UnknownHostException {         String domain = "www.baidu.com";         InetAddress netAddress = InetAddress.getByName(domain);         // 获取

JAVA基础整理-22. Java内置包装类

Java Object类详解:Object类的常用方法(equals()和getClass()) Object 是 Java 类库中的一个特殊类,也是所有类的父类.当一个类被定义后,如果没有指定继承的父类,那么默认父类就是 Object 类. 在 Object 类中定义的方法,在其他类中都可以使用 equals() 方法 equals() 方法的作用与运算符类似,用于值与值的比较和值与对象的比较,而 equals() 方法用于对象与对象之间的比较 getClass() 方法 getClass()

Java基础__慕课网学习(22):Java中的instanceof关键字

instanceof是Java的一个二元操作符,和==,>,<是同一类东东.由于它是由字母组成的,所以也是Java的保留关键字.它的作用是测试它左边的对象是否是它右边的类的实例,返回boolean类型的数据.举个例子: String s = "I AM an Object!"; boolean isObject = s instanceof Object; 我们声明了一个String对象引用,指向一个String对象,然后用instancof来测试它所指向的对象是否是Obj

java常用方法

1. byte[] b = {1,2,3,4,5,6,7}; byte[] c = new byte[5]; void System.arraycopy(b,2,c,0,c.length); //后5个 2. new int[1].length; new String("1").length(); 3.Object java.lang.Object :11 protected Object clone()throws CloneNotSupportedException public

22.java方法的定义

java中的方法:就相当于c语言中的函数:sun在开发java的时候,为提高其代码的重复利用率,引入了方法. 什么是方法? 方法就是一段代码片段,这个片段可以完成特定的功能,并且可以重复利用. 从入口程序那里开始调用,一掉就开始执行指定的方法. 定义方法的语法: [方法的修饰符列表] 方法的返回值类型 方法名{ java语句; } 注意:[]括号里面的可以有也可以没有,但是不在[]里面的一定的有. 1)[方法的修饰符列表]是可选项,现在暂时先写成:public static 2)方法的返回值类型

2014/10/22 java基础知识记录(1)

今日上班没啥叼事,就翻开放在桌上已久的java疯狂讲义看了一看,唉,真不好意思说自己是学编程的,记录点,积累点,不求能成为大神,希望工作中不要被人当作文盲. 1.常量池:String a=“java”;"java"会放入常量池中.而放在new  String("java")内存中,所以每次new String()都会产生一个新的对象. 2.基本类型变量转换为字符串方法:int  n=1;String str=n+""; 3:toString()方

22.Java基础_StringBuilder类

String类对象的拼接操作:执行到s+="world"语句时,常量池会先创建"world"对象,再去创建"helloworld"对象,最后将"helloworld"对象的首地址赋给栈内存的s变量 StringBuilder构造方法: StringBuilder添加和反转方法: 1 import java.util.Scanner; 2 public class test { 3 public static void main

2017/05/22 java 基础 随笔

多态:一种事物多种形态 前提:1.子父类继承关系 2.方法复写.重写 3.父类引用指向子类对象 package com.huawei; public class Demo1 { public static void main(String[] args) { Fu f=new Zi(); System.out.println(f.num); } } class Fu{ int num=10; } class Zi extends Fu{ int num=20; }执行结果是10,原因见下图,说白

22 java当中的数组

class Test { public static void main(String args[]) { //数组的静态声明法 int arr[]={5,2,7,9,0}; //数组的动态声明法 int arr[]=new int[10]; System.out.println("arr的长度是"+arr.length); //二维数组的定义方法 int arr[][]={{1,2,3},{4,5,6},{7,8}}; int arr1[][]=new int[3][5]; } }