工具类

来源:互联网 发布:软件系统部署方案 编辑:程序博客网 时间:2024/05/06 05:18

public class Tools {
  public Tools() {
  }

  /**
   * 将ArrayList转换为一个一维数组
   * @param al
   * @return
   */
  public static String[] cvtArrayListToArr(ArrayList<String> al) {
   return  al.toArray(new String[al.size()]);
  }

  /**
   * 将ArrayList转换为一个二维数组
   * @param al
   * @param colCount
   * @return
   */
  public static String[][] cvtArrayListToArr(ArrayList<String[]> al, int colCount) {
    Object[] obj = al.toArray();
    int rowCount = obj.length;
    String[][] arr = new String[rowCount][colCount];
    for (int i = 0; i < rowCount; i++) {
      arr[i] = (String[]) obj[i];
    }
    return arr;
  }
  /**
   * 将ArrayList转换为一个二维数组
   * @param al ArrayList<String[]>
   * @return
   */
  public static String[][] cvtArrayListToArr(ArrayList<String[]> al) { 
     int rowCount = al.size();
     if(rowCount == 0) return null;
     String [] eliment = al.get(0);
     int colCount = eliment.length;
     return  al.toArray(new String[rowCount][colCount]);         
  }
 
  /**
   * 将数组中的null转换为"",并返回转换后的数组
   * @param arr
   */
  public static String[] cvtNullToBlank(String[] arr) {
    for (int i = 0; i < arr.length; i++) {
      if (arr[i] == null) {
        arr[i] = "";
      }
    }
    return arr;
  }

  /**
   * 将数组中的null转换为"",并返回转换后的数组
   * @param arr
   */
  public static String[][] cvtNullToBlank(String[][] arr) {
    for (int i = 0; i < arr.length; i++) {
      for (int j = 0; j < arr[i].length; j++) {
        if (arr[i][j] == null) {
          arr[i][j] = "";
        }
      }
    }
    return arr;
  }

  /**
   * 将传入的一维数组转换成为带有,分隔的字符串返回
   * @param inArr 传入的一维数组
   * @return 处理后用“,”分隔的字符串
   */
  public static String arrToString(String[] inArr) {
    String outStr = "";
    if (inArr == null || inArr.length < 1) {
      return outStr;
    }
    StringBuffer outSb = new StringBuffer();
    for (int i = 0; i < inArr.length; i++) {
      outSb.append(inArr[i]);
      outSb.append(",");
    }
    outStr = outSb.substring(0, outSb.length() - 1);
    return outStr;
  }

  /**
   * 字符串数组转换为字符串
   * @param strs
   * @return
   */
  public static String strsToStr(String[] strs) {
    StringBuffer str = new StringBuffer();
    if (strs != null && strs.length > 0) {
      for (int i = 0; i < strs.length ; i++) {
       str.append(strs[i]);
       str.append(",");
      }
     str.deleteCharAt(str.length()-1);

    }
    return  str.toString();
  }

  /**
   * 将传入的一维数组转换成为带有分隔字符的字符串返回
   * @param inArr 传入的一维数组
   * @param spit 分隔使用的符号
   * @return 处理后用spit分隔的字符串
   */
  public static String arrToString(String[] inArr, String spit) {
    String outStr = "";
    if (inArr == null || inArr.length < 1) {
      return outStr;
    }
    StringBuffer outSb = new StringBuffer();
    for (int i = 0; i < inArr.length; i++) {
      outSb.append(inArr[i]);
      outSb.append(spit);
    }
    outStr = outSb.substring(0, outSb.length() - 1);
    return outStr;
  }

  /**
   * 产生随机数,从0开始,最大为maxVal
   * maxVal 随机数传入的参数,控制随机数范围
   * @param maxVal
   * @return 单个int型数字,不包括传入的最大值参数
   */
  public static int createRandom(int maxVal) {
    int result = 0;
    //Math.random产生一个从0.0到1.0之间的小数,但不包括1
    Random r = new Random();
    result = r.nextInt(maxVal);
    return result;
  }

  /**
   * 产生随机数,参数控制最大最小范围
   * 如果最小值大于最大值则最小值和最大值互换后执行
   * @param minVal 传入最小值
   * @param maxVal 传入最大值
   * @return 单个int型数字,不包括传入的最大值参数
   */
  public static int createRandom(int minVal, int maxVal) {
    //如果最小值大于最大值则最小值和最大值互换
    if (minVal > maxVal) {
      int changeNum = maxVal;
      maxVal = minVal;
      minVal = changeNum;
    }
    //最大值和最小值的差
    Random r = new Random();
    return  r.nextInt(maxVal - minVal)+minVal;
  }

  /**
   * 查找数组中时候存在指定的字符串,没有返回-1,存在返回第一个所在的下标
   * @param inArr
   * @param keywords
   * @return
   */
  public static int searchArr(String[] inArr, String keywords) {
    for (int i = 0; i < inArr.length; i++) {
      if (inArr[i].equals(keywords)) {
        return i;
      }
    }
    return -1;
  }

  /**
   * @param      sql
   * @call       none
   * @return     处理好的SQL语句
   * @function   过滤掉SQL语句中的单引号,转成''
   * @date
   * @author
   * @modify
   */
  public static String filterSingleQuotes(String sql) {
    String sqlStr = ""; //存储处理的SQL语句
    if (sql == null) { /*空语句,直接返回*/
      return "";
    }
    sqlStr = sql.trim(); //去掉SQL语句中的空格
    sqlStr = sqlStr.replaceAll("'", "''"); //得到处理好的语句
    return sqlStr; //返回处理好的语句
  }

  /**
   * @param      sql
   * @call       none
   * @return     处理好的SQL语句
   * @function   过滤掉SQL语句中的& < > "
   * @date
   * @author
   * @modify
   */
  public static String filterNotHttp(String str) {
    String sqlStr = ""; //存储处理的SQL语句
    if (str == null) { /*空语句,直接返回*/
      return "";
    }
    sqlStr = str.trim(); //去掉SQL语句中的空格
    sqlStr = sqlStr.replaceAll("&", "&amp;");
    sqlStr = sqlStr.replaceAll("<", "&lt;");
    sqlStr = sqlStr.replaceAll(">", "&gt;");
    sqlStr = sqlStr.replaceAll("/"", "&quot;");
    return sqlStr; //返回处理好的语句
  }

  /**
   * @param      id
   * @call       none
   * @return     处理好的id
   * @function   对字符串id进行加一处理,最后返回9位的字符串
   * @date
   * @author
   * @modify
   */
  public static String idAddOne(String id) {
    try {
      int i = Integer.parseInt(id);
      i = i + 1;
      String s = Integer.toString(i);
      int k = 9 - s.length();
      for (int j = 0; j < k; j++) {
        s = "0" + s;
      }
      return s;
    }
    catch (Exception e) {
      Debug.print_log(e);
      return null;
    }
  }

  /**
   * @param      comm
   * @call       none
   * @return     处理好的comm
   * @function   对字符串comm进行加一处理,最后返回5位的字符串
   * @date
   * @author
   * @modify
   */
  public static String commAddOne(String comm) {
    try {
      int i = Integer.parseInt(comm);
      i = i + 1;
      String s = Integer.toString(i);
      int k = 5 - s.length();
      for (int j = 0; j < k; j++) {
        s = "0" + s;
      }
      return s;
    }
    catch (Exception e) {
      Debug.print_log(e);
      return null;
    }
  }

  /**
   * @param      meetnum
   * @call       none
   * @return     处理好的meetnum
   * @function   为会议纪要号加一,返回三位字符串
   * @date
   * @author
   * @modify
   */
  public static String meetnumAddOne(String meetnum) {
    try {
      int i = Integer.parseInt(meetnum);
      i = i + 1;
      String s = Integer.toString(i);
      int k = 3 - s.length();
      for (int j = 0; j < k; j++) {
        s = "0" + s;
      }
      return s;
    }
    catch (Exception e) {
      Debug.print_log(e);
      return null;
    }
  }

  /**
   * @param
   * @call       none
   * @return     处理好的"yyyy-MM-dd HH:mm"
   * @function
   * @date
   * @author
   */
  public static String getFormatDate() {
    Date date = new Date();
    SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm");
    String nowDate = df.format(date);
    return nowDate;
  }

  /**
   * @param
   * @call       none
   * @return     处理好的"yyyy-MM-dd HH:mm"
   * @function
   * @date
   * @author
   */
  public static String getFormatDate(String format) {
    Date date = new Date();
    SimpleDateFormat df = new SimpleDateFormat(format);
    String nowDate = df.format(date);
    return nowDate;
  }
  /**
   * 取得字符串str的后len位并+1;如果长度不足len位,后面补零;如果后面len位不是数字,继续补0
   * @param str 字符串str,len后几位加1
   * @return
   */
  public String lastNumAddOne(String str,int len){
  if(str ==null) str="0";
    int i = -1;
    for (i=str.length()-1;i>=0;i--){
     if (!Character.isDigit(str.charAt(i))){
      break;
      }
     }
    while(str.length()-i<=len) {str = str+"0";}
    String header = str.substring(0,str.length()-len);
    String laster = str.substring(str.length()-len);
    int intTemp = Integer.parseInt(laster);
    intTemp = intTemp + 1;
    laster = Integer.toString(intTemp);
    while(laster.length() < len){
     laster = "0" + laster;
    }
    return header+laster;
   }

  /**
   * @param      num,string类型的数字,如果不是数字,则返回null;len结果为长度len的字符串,不足len的,前面补零
   * @call       none
   * @return     处理好的num
   * @function   为num加一,返回len位字符串
   * @date
   * @author
   * @modify
   */
  public static String strNumAddOne(String num, int len) {
    try {
      int i = Integer.parseInt(num);
      i = i + 1;
      String s = Integer.toString(i);
      int k = len - s.length();
      for (int j = 0; j < k; j++) {
        s = "0" + s;
      }
      return s;
    }
    catch (Exception e) {
      Debug.print_log(e);
      return null;
    }
  }

}