隨筆-26  評論-13  文章-46  trackbacks-0
          在J2EE項目開發中使用到的一些自己寫的基本函數

          package jing.tools;

          import java.util.*;
          import java.text.*; //日期處理用到的包
          import java.util.regex.*;
          import java.lang.*;

          /**
          * <p>Title: 常用基礎函數</p>
          * <p>Description: 以下全部是靜態函數</p>
          * <p>Copyright: Copyright (c) 2005</p>
          * <p>Company: 靜靖工作室</p>
          * “@deprecated Method 方法名 is deprecated” 在方法的注釋里加上此注釋,表示此方法以后版本不再被支持。
          * 文件注釋只能寫在import后,類定義前才能在javadoc中出現文件的注釋
          * @author 歐朝敬 QQ:35712069
          * @version 1.0
          */
          public class BaseFunction {
              public BaseFunction() {

              }

              /**
               * 拼合一維數組為字符串。
               * <B>拆分字串按指定字符分解到一維數組使用String類的split(String regex)</B>
               * @param param String[] 數組
               * @param spilt String 字符串之單的分離符
               * @return String
               */
              public static String arrayToString(String[] param, String spilt) {
                  String rentunstring;
                  StringBuffer tempstr = new StringBuffer();
                  int len = param.length;
                  for (int i = 0; i < len - 1; i++) {
                      tempstr.append(param);
                      tempstr.append(spilt);
                  }
                  tempstr.append(param[len - 1]);
                  rentunstring = tempstr.toString();
                  return rentunstring;
              }

              /**
               * 產生在start和end之間的num個隨機整數,返回值存在HashMap中。
               * 示例
               * HashMap hm=BaseFunction.random(1,100,5);
               * Set set=hm.keySet();
               * Iterator it=set.iterator();
               * while(it.hasNext()){
               *     System.out.println(hm.get(it.next()));
               * }
               * @param start int 起始點
               * @param end int 結束點
               * @param num int 生成個數
               * @return HashMap
               */
              public static HashMap random(int start, int end, int num) {
                  HashMap hashMap = new HashMap();
                  for (int i = 0; i < num; i++) {
                      double sru = Math.random() * end;
                      int tag = Math.round((float) sru);
                      if (tag < start) {
                          i--;
                      } else {
                          hashMap.put(new Integer(i), new Integer(tag));
                      }
                  }
                  return hashMap;
              }


              /**
               * 獲取當前時間,返回時間格式(如果調用參數為true時返回yyyy-MM-dd HH:mm:ss
               * ,否則為false時返回yyyy-MM-DD不帶日期格式)
               * @param time boolean
               * @return String
               * @throws Exception
               */
              public static String getNowTime(boolean time) throws java.lang.Exception {
                  Date now = new Date();
                  String format = "";
                  //yyyy-MM-dd HH:mm:ss:S 年月日時分秒毫杪
                  if (time) {
                      format = "yyyy-MM-dd HH:mm:ss";
                  } else {
                      format = "yyyy-MM-dd";
                  }
                  SimpleDateFormat sdf = new SimpleDateFormat(format);
                  String nowtime = sdf.format(now);
                  return nowtime;
              }

              /**
               * 將HashMap內容轉入數組,
               * 示例
               *    HashMap hashMap = new HashMap();
               *    hashMap.put("ka", "bb");
               *    hashMap.put("kb", "cc");
               *    hashMap.put("jk", "fdsaf");
               *    hashMap.put("ak", "kkkkk");
               *    Object[] obj = BaseFunction.hashMapToArray(hashMap);
               *    for (int i = 0; i < obj.length; i++) {
               *        System.out.println(obj);
               *    }
               * @param param HashMap
               * @return Object[]
               */
              public static Object[] hashMapToArray(HashMap param) {
                  int size = param.size();
                  if (param == null || param.size() == 0) {
                      return null;
                  }
                  Object[] obj = new Object[size];
                  Set set = param.keySet();
                  Iterator ite = set.iterator();
                  for (int i = 0; ite.hasNext(); i++) {
                      obj = param.get(ite.next());
                  }
                  return obj;
              }

              /**
               * 日期轉字符串
               * 示例:dateToString(stringToDate("2005-5-2 0:0:10"));
               * @param date Date
               * @return String
               * 返回字符串格式為“yyyy年MM月dd日 HH時mm分ss秒”或“yyyy年MM月dd日”
               * 根據輸入的日期是否含有時間來確定輸出格式
               */
              public static String dateToString(Date date) {
                  Calendar calendar = Calendar.getInstance(TimeZone.getTimeZone("GMT+8"),
                                                           Locale.CHINA);
                  calendar.clear();
                  calendar.setTimeInMillis(date.getTime());
                  String format = "";

                  /*        if (calendar.get(Calendar.MILLISECOND) == 0 &&
                              calendar.get(Calendar.SECOND) == 0 &&
                   calendar.get(Calendar.SECOND) == calendar.get(Calendar.MINUTE) &&
                   calendar.get(Calendar.MINUTE) == calendar.get(Calendar.HOUR)) {
                              format = "yyyy'年'MM'月'dd'日'";
                          } else {
                           format = "yyyy'年'MM'月'dd'日' HH'時'mm'分'ss'秒'";
                          }
                   */
                  format = "yyyy'年'MM'月'dd'日' HH'時'mm'分'ss'秒'";
                  String return_string = "";
                  SimpleDateFormat sdf = new SimpleDateFormat(format);
                  //yyyy-MM-dd HH:mm:ss:S 年月日時分秒毫杪
                  return_string = sdf.format(date);
                  return return_string;
              }

              /**
               * 字符串轉日期
               * 示例:stringToDate("2005-5-2 0:0:10");
               * @param str String
               * 輸入字符串日期可用三種格式
               * yyyy-MM-dd HH:mm:ss完整式
               * yyyy-MM-dd HH:mm不含秒
               * yyyy-MM-dd只有日期不含時間
               * @return Date
               * @throws Exception
               */
              public static Date stringToDate(String str) throws Exception {
                  Date return_date = null;
                  String format = "";
                  if (str.length() > 13) {
                      format = "yyyy-MM-dd HH:mm:ss";
                  } else if (str.length() > 10) {
                      format = "yyyy-MM-dd HH:mm";
                  } else {
                      format = "yyyy-MM-dd";
                  }
                  try {
                      SimpleDateFormat sdf = new SimpleDateFormat(format);
                      return_date = sdf.parse(str);
                  } catch (ParseException e) {
                      throw new Exception(
                              "輸入字符串的格式出錯(格式為yyyy-MM-dd/yyyy-MM-dd HH:mm/yyyy-MM-dd HH:mm:ss):" +
                              e.getMessage());
                  }
                  return return_date;
              }

              /**
               * 連續產生指定個數的字符串
               * @param str String
               * @param count int
               * @return String
               */
              public static String continuousMakeString(String str, int count) {
                  StringBuffer sb = new StringBuffer();
                  for (int i = 0; i < count; i++) {
                      sb.append(str);
                  }
                  return (sb.toString());
              }

              /**
               * 將字符串開頭的所有空格替換成指定的字符
               * 在JSP中經常用到把字符串開頭的n個空格替換成n個&nbsp;字符
               * 就可以使用此函數調用示例
               * replaceStartsWithSpace("  中國  湖南  長沙","&nbsp;");結果為“&nbsp;&nbsp;中國  湖南  長沙”
               * @param str String
               * @param sub String
               * @return String
               */
              public static String replaceStartsWithSpace(String str, String sub) {
                  String returnStr = "";
                  String regEx = "\\S"; //非空格字符
                  Pattern pattern = Pattern.compile(regEx);
                  Matcher matcher = pattern.matcher(str);
                  matcher.find();
                  int start = matcher.start(); //非空格開始的位置
                  for (int i = 0; i < start; i++) {
                      returnStr = returnStr + sub;
                  }
                  returnStr = returnStr + str.substring(start);
                  return returnStr;
              }

              /**
               * 查找指定的元素是否存在于元素數組中
               * 使用Object支持各種對象數組
               * 示例
               * String[] des = {"ada", "ss", "dd","aa"};
               * System.out.println(BaseFunction.contains(str, "adfab"));
               * @param objArray Object[]
               * @param value Object
               * @return int 如果查到則返回第一次在數組中出現的下標值,查不到則返回值為-1
               */
              public static int contains(Object[] objArray, Object value) {
                  int j = -1;
                  for (int i = 0; i < objArray.length; i++) {
                      if (objArray.equals(value)) { //查到則返回下標
                          j = i;
                          break;
                      }
                  }
                  return j;
              }

              /**
               * 字符串數組中是否包含指定的字符串。
               * @param strings 字符串數組
               * @param string 字符串
               * @param caseSensitive 是否大小寫敏感(true區分大小寫,false不區分大小寫)
               * @return 包含時返回true,否則返回false
               * @since  0.4
               */
              public static boolean contains(String[] strings, String string,
                                             boolean caseSensitive) {
                  for (int i = 0; i < strings.length; i++) {
                      if (caseSensitive == true) {
                          if (strings.equals(string)) {
                              return true;
                          }
                      } else {
                          if (strings.equalsIgnoreCase(string)) {
                              return true;
                          }
                      }
                  }
                  return false;
              }

              /**
               * 數組拷貝,建議使用System.arraycopy()速度更快,把source數據內容拷貝到destination中
               * 使用Object則支持多種對象數組
               * 示例
               * String[] des = {"ada", "ss", "dd","aa"};
               * String[] src = new String[8];
               * BaseFunction.copy(des, src);
               * @param source Object[]
               * @param destination Object[]
               */
              public static void copy(Object[] source, Object[] destination) {
                  if (destination == null || source == null) {
                      throw new java.lang.NullPointerException("數組沒有初始化!");
                  }
                  if (destination.length < source.length) {
                      throw new java.lang.ArrayIndexOutOfBoundsException("兩數組長度不相等!");
                  }
                  for (int i = 0; i < source.length; i++) {
                      destination = source;
                  }
              }

              /**
               * 去除數組中的重復元素,調用示例
               * String[] src = {"dafdfad", "asdfasdf", "dafdfad", "adfasdf", "dafdfad","dafdfad"};
               * Object[] test =BaseFunction.wipeOffRepeat(src);
               * @param objArray Object[]
               * @return Object[]
               */
              public static Object[] wipeOffRepeat(Object[] objArray) {
                  Object[] obj = null;
                  ArrayList list = new ArrayList();
                  for (int i = 0; i < objArray.length; i++) {
                      list.add(objArray);
                  }
                  //去除list中的重復對象
                  HashSet h = new HashSet(list);
                  list.clear();
                  list.addAll(h);
                  obj = list.toArray();
                  return obj;
              }

              /**
               * 四舍五入
               * @param param double 要進行四舍五入的值
               * @param num int 保留的小數位數
               * @return double
               */
              public static double round(double param, int num) {
                  NumberFormat nf = NumberFormat.getNumberInstance();
                  nf.setMaximumFractionDigits(num);
                  double returndouble = Double.parseDouble(nf.format(param));
                  return returndouble;
              }

              /**
               * 主函數做測試用
               * @param args String[]
               * @throws Exception
               */
              public static void main(String[] args) throws Exception {
                  /*        System.out.println(BaseFunction.dateToString(stringToDate(
                                  "2005-5-2 0:0:10")));
                          System.out.println(BaseFunction.getTime(true));
                          System.out.println(BaseFunction.continuousMakeString(" ", 10));
                          System.out.println(BaseFunction.replaceStartsSpace(
                                  " fadsfas   dfsd", "&nbsp;"));
                   */
                  /*        HashMap hm=BaseFunction.random(1,100,5);
                          Set set=hm.keySet();
                          Iterator it=set.iterator();
                          while(it.hasNext()){
                              System.out.println(hm.get(it.next()));
                          }
                   */
                  //System.out.println(BaseFunction.replaceStartsWithSpace("  中國  湖南  長沙","&nbsp;"));
                  System.out.println(BaseFunction.round(0.25689,2));
              }
          }
          posted on 2005-08-31 14:05 似水流年 閱讀(424) 評論(0)  編輯  收藏 所屬分類: Java
          主站蜘蛛池模板: 榆中县| 新河县| 屯昌县| 杭锦旗| 谷城县| 平潭县| 安塞县| 萨迦县| 浦城县| 德州市| 鹤庆县| 乐东| 蒙自县| 西盟| 合阳县| 阳山县| 新田县| 蓝山县| 磴口县| 鄯善县| 莱芜市| 麻栗坡县| 老河口市| 兰考县| 郯城县| 旬邑县| 桐乡市| 财经| 金乡县| 成武县| 耿马| 舒兰市| 巴楚县| 红桥区| 南平市| 蒙自县| 栖霞市| 清原| 习水县| 康马县| 陆川县|