JAVA實用工具類

        在開發java項目時,常常都須要頻繁處理數據,若是能很是合適、嚴謹的處理數據,那麼將對程序有莫大的好處,例如,提升程序的穩定性,並且有時候數據在使用前是必須處理的,不然就會出錯。例如,在操做前對被除數的處理(若是是0怎麼辦)、字符串轉化、編碼轉換等,針對項目開發中對數據的頻繁操做,在咱們程序的開發過程當中是頗有必要對這些處理數據的工具方法進行統一歸類使用的,而下面的這個工具類就封裝了不少對基礎數據的處理操做的方法。由於方法不少,爲了方便查詢,我先對方法及其實現的功能列了一個清單,以下:java

        同時也但願你們能把本身使用的工具類發上來共享,謝謝。小程序

 

1、功能方法目錄清單:數組

一、getString(String sSource)的功能是判斷參數是否爲空,爲空返回"",不然返回其值;app

二、getString(int iSource)的功能是判斷參數是否爲0,爲0則返回"",不然返回其值;框架

三、GBKtoISO(String s)的功能是進行編碼轉換,由GBK轉爲 iso-8859-1;函數

四、ISOtoGBK(String s)的功能是進行編碼轉換,由iso-8859-1 轉爲 GBK;工具

五、getArray(String[] aSource)的功能是判斷參數是否爲空,爲空則返回一個長度爲0的字符串數組,不然返回其值;編碼

六、getInt(String sSource)的功能是判斷參數是否爲空,爲空則返回0,不爲空則返回其整型值;spa

七、getIntArray(String[] aSource)的功能是判斷參數是否爲空,爲空則返回一個長度爲0的整形數組,不然返回其值;.net

八、getDouble(String sSource)的功能是判斷參數是否爲空,爲空則返回0,不爲空則返回其整型值;

九、isContain(String sSource, String sItem)的功能是查找以逗號分隔的源字符串是否包含給定字符串;

十、isContain(String[] aSource, String sItem)的功能是查找源字符串數組中是否包含給定字符串;

十一、delete(String source, String subString)的功能是將指定字符串從源字符串中刪除掉,並返回替換後的結果字符串;

十二、replace(String source, String oldString, String newString)的功能是用新字符串替換源字符串中的舊字符串;

1三、increaseOne(String sSource)的功能是將給定的源字符串加1 例如:「0001」 經本函數轉換後返回爲「0002」;

1四、intToStr(int val, int len)的功能是將給定的整數轉化成字符串,結果字符串的長度爲給定長度,不足位數的左端補"0";

1五、arrayAddSign(String[] aSource, String sChar)的功能是將數組中的每一個元素兩端加上給定的符號;

1六、arrayToString(String[] aSource)的功能是將數組中的元素連成一個以逗號分隔的字符串;

1七、arrayToString(int[] aSource)的功能是將數組中的元素連成一個以逗號分隔的字符串;

1八、arrayToString(String[] aSource, String sChar)的功能是將數組中的元素連成一個以給定字符分隔的字符串;

1九、arrayAppend(String[] array1, String[] array2)的功能是將兩個字符串的全部元素連結爲一個字符串數組;

20、arrayAppend(Object[] array1, Object[] array2)的功能是將兩個對象數組中的全部元素連結爲一個對象數組;

2一、strToArray(String sSource)的功能是拆分以逗號分隔的字符串,並存入String數組中;

2二、strToArray(String sSource, String sChar)的功能是拆分以給定分隔符分隔的字符串,並存入字符串數組中;

2三、strToArray(String sSource, char sChar)的功能是拆分以給定分隔符分隔的字符串,並存入整型數組中;

2四、addMark(String sSource)的功能是將以逗號分隔的字符串的每一個元素加上單引號 如: 1000,1001,1002 --> '1000','1001','1002';

2五、deleteFile(String fileName)的功能是刪除磁盤上的文件;

2六、isNumber(String strInput)的功能是判斷字符串是否可轉換成數字;

2七、isIp(String strIp)的功能是判斷輸入的字符是不是IP地址的形式;

  1. import java.io.File;
  2. import java.io.Serializable;
  3. import java.math.BigDecimal;
  4. import java.util.Hashtable;
  5. import java.util.Set;
  6. import java.util.StringTokenizer;
  7. import java.util.Vector;
  8. /*******************************************************************************
  9.  * 文件名稱:Function.java<br>
  10.  * 功能描述:工具類,封裝一些經常使用的操做<br>
  11.  ******************************************************************************/
  12. public class Function implements Serializable {
  13.     private static final long serialVersionUID = 1L;
  14.     public Function() {
  15.     }
  16.     public static void main(String args[]) {
  17.     }
  18.     /**
  19.      * 判斷參數是否爲空,爲空則返回"",不然返回其值
  20.      * @param sSource 源字符串
  21.      * @return 字符串
  22.      */
  23.     public String getString(String sSource) {
  24.         String sReturn = "";
  25.         if (sSource != null) {
  26.             sReturn = sSource;
  27.         }
  28.         return sReturn;
  29.     }
  30.     /**
  31.      * 判斷參數是否爲0,爲0則返回"",不然返回其值
  32.      * @param iSource 源字符串
  33.      * @return 字符串
  34.      */
  35.     public static String getString(int iSource) {
  36.         if (iSource == 0) {
  37.             return "";
  38.         } else {
  39.             return "" + iSource;
  40.         }
  41.     }
  42.     /**
  43.      * 轉碼:GBK ----> iso-8859-1
  44.      * @param s 轉碼字段
  45.      * @return 轉碼後的字段
  46.      */
  47.     public static String GBKtoISO(String s) {
  48.         try {
  49.             s = new String(s.getBytes("GBK"), "iso-8859-1");
  50.         } catch (Exception e) {
  51.         }
  52.         return s;
  53.     }
  54.     /**
  55.      * 轉碼:iso-8859-1 ----> GBK
  56.      * @param s 轉碼字段
  57.      * @return 轉碼後的字段
  58.      */
  59.     public static String ISOtoGBK(String s) {
  60.         try {
  61.             s = new String(s.getBytes("iso-8859-1"), "GBK");
  62.         } catch (Exception e) {
  63.         }
  64.         return s;
  65.     }
  66.     /**
  67.      * 判斷參數是否爲空,爲空則返回一個長度爲0的字符串數組,不然返回其值
  68.      * @param aSource 源字符串數組
  69.      * @return 字符串
  70.      */
  71.     public String[] getArray(String[] aSource) {
  72.         String aReturn[] = new String[0];
  73.         if (aSource != null) {
  74.             aReturn = aSource;
  75.         }
  76.         return aReturn;
  77.     }
  78.     /**
  79.      * 判斷參數是否爲空,爲空則返回0,不爲空則返回其整型值
  80.      * @param sSource  源字符串
  81.      * @return 整型數
  82.      */
  83.     public int getInt(String sSource) {
  84.         int iReturn = 0;
  85.         if (sSource != null && !sSource.equals("")) {
  86.             iReturn = Integer.parseInt(sSource);
  87.         }
  88.         return iReturn;
  89.     }
  90.     /**
  91.      * 判斷參數是否爲空,爲空則返回一個長度爲0的整形數組,不然返回其值
  92.      * @param aSource 源字符串數組
  93.      * @return 整形數組
  94.      */
  95.     public int[] getIntArray(String[] aSource) {
  96.         int iReturn[] = new int[0];
  97.         if (aSource != null) {
  98.             iReturn = new int[aSource.length];
  99.             for (int i = 0; i < aSource.length; i++) {
  100.                 iReturn[i] = Integer.parseInt(aSource[i]);
  101.             }
  102.         }
  103.         return iReturn;
  104.     }
  105.     /**
  106.      * 判斷參數是否爲空,爲空則返回0,不爲空則返回其整型值 
  107.      * @param sSource 源字符串
  108.      * @return Double數
  109.      */
  110.     public double getDouble(String sSource) {
  111.         double dReturn = 0.00;
  112.         if (sSource != null && !sSource.equals("")) {
  113.             dReturn = (new Double(sSource)).doubleValue();
  114.         }
  115.         return dReturn;
  116.     }
  117.     /**
  118.      * 查找以逗號分隔的源字符串是否包含給定字符串
  119.      * @param sSource :源字符串
  120.      * @param sItem :子串
  121.      * @return 是否包含
  122.      */
  123.     public boolean isContain(String sSource, String sItem) {
  124.         boolean isReturn = false;
  125.         StringTokenizer st = null;
  126.         st = new StringTokenizer(sSource, ",");
  127.         while (st.hasMoreTokens()) {
  128.             if (sItem.equals(st.nextToken())) {
  129.                 isReturn = true;
  130.                 break;
  131.             }
  132.         }
  133.         return isReturn;
  134.     }
  135.     /**
  136.      * 查找源字符串數組中是否包含給定字符串
  137.      * @param aSource :源字符串數組
  138.      * @param sItem :子串
  139.      * @return 是否包含
  140.      */
  141.     public boolean isContain(String[] aSource, String sItem) {
  142.         boolean isReturn = false;
  143.         for (int i = 0; i < aSource.length; i++) {
  144.             if (sItem.equals(aSource[i])) {
  145.                 isReturn = true;
  146.                 break;
  147.             }
  148.         }
  149.         return isReturn;
  150.     }
  151.     /**
  152.      * 將指定字符串從源字符串中刪除掉,並返回替換後的結果字符串
  153.      * @param source 源字符串
  154.      * @param subString 要刪除的字符
  155.      * @return 替換後的字符串
  156.      */
  157.     public String delete(String source, String subString) {
  158.         StringBuffer output = new StringBuffer();
  159.          //源字符串長度
  160.         int lengthOfSource = source.length();
  161.         //開始搜索位置
  162.         int posStart = 0
  163.         //搜索到老字符串的位置
  164.         int pos; 
  165.         while ((pos = source.indexOf(subString, posStart)) >= 0) {
  166.             output.append(source.substring(posStart, pos));
  167.             posStart = pos + 1;
  168.         }
  169.         if (posStart < lengthOfSource) {
  170.             output.append(source.substring(posStart));
  171.         }
  172.         return output.toString();
  173.     }
  174.     /**
  175.      * 此函數有三個輸入參數,源字符串(將被操做的字符串),原字符串中被替換的字符串(舊字符串)
  176.      * 替換的字符串(新字符串),函數接收源字符串、舊字符串、新字符串三個值後,
  177.      * 用新字符串代替源字符串中的舊字符串並返回結果
  178.      * @param source 源字符串
  179.      * @param oldString 舊字符串
  180.      * @param newString 新字符串
  181.      * @return 替換後的字符串
  182.      */
  183.     public static String replace(String source, String oldString,
  184.             String newString) {
  185.         StringBuffer output = new StringBuffer();
  186.         int lengthOfSource = source.length(); // 源字符串長度
  187.         int lengthOfOld = oldString.length(); // 老字符串長度
  188.         int posStart = 0// 開始搜索位置
  189.         int pos; // 搜索到老字符串的位置
  190.         while ((pos = source.indexOf(oldString, posStart)) >= 0) {
  191.             output.append(source.substring(posStart, pos));
  192.             output.append(newString);
  193.             posStart = pos + lengthOfOld;
  194.         }
  195.         if (posStart < lengthOfSource) {
  196.             output.append(source.substring(posStart));
  197.         }
  198.         return output.toString();
  199.     }
  200.     /**
  201.      * 將給定的源字符串加1 例如:「0001」 經本函數轉換後返回爲「0002」
  202.      * @param sSource :源字符串
  203.      * @return 返回字符串
  204.      */
  205.     public String increaseOne(String sSource) {
  206.         String sReturn = null;
  207.         int iSize = 0;
  208.         iSize = sSource.length();
  209.         long l = (new Long(sSource)).longValue();
  210.         l++;
  211.         sReturn = String.valueOf(l);
  212.         for (int i = sReturn.length(); i < iSize; i++) {
  213.             sReturn = "0" + sReturn;
  214.         }
  215.         return sReturn;
  216.     }
  217.     /**
  218.      * 將給定的整數轉化成字符串,結果字符串的長度爲給定長度,不足位數的左端補"0"
  219.      * 例如val=10,len=5,那麼生成的字符串爲"00010"
  220.      * @param val 將被轉化成字符串的整數
  221.      * @param len 轉化後的長度
  222.      * @return String 返回值
  223.      */
  224.     public String intToStr(int val, int len) {
  225.         String sReturn = new String();
  226.         sReturn = String.valueOf(val);
  227.         if (sReturn.length() < len) {
  228.             for (int i = len - sReturn.length(); i > 0; i--) {
  229.                 sReturn = "0" + sReturn;
  230.             }
  231.         }
  232.         return sReturn;
  233.     }
  234.     /**
  235.      * 將數組中的每一個元素兩端加上給定的符號
  236.      * @param aSource 源數組
  237.      * @param sChar 符號
  238.      * @return 處理後的字符串數組
  239.      */
  240.     public String[] arrayAddSign(String[] aSource, String sChar) {
  241.         String aReturn[] = new String[aSource.length];
  242.         for (int i = 0; i < aSource.length; i++) {
  243.             aReturn[i] = sChar + aSource[i] + sChar;
  244.         }
  245.         return aReturn;
  246.     }
  247.     /**
  248.      * 將數組中的元素連成一個以逗號分隔的字符串
  249.      * @param aSource 源數組
  250.      * @return 字符串
  251.      */
  252.     public String arrayToString(String[] aSource) {
  253.         String sReturn = "";
  254.         for (int i = 0; i < aSource.length; i++) {
  255.             if (i > 0) {
  256.                 sReturn += ",";
  257.             }
  258.             sReturn += aSource[i];
  259.         }
  260.         return sReturn;
  261.     }
  262.     /**
  263.      * 將數組中的元素連成一個以逗號分隔的字符串
  264.      * @param aSource 源數組
  265.      * @return 字符串
  266.      */
  267.     public String arrayToString(int[] aSource) {
  268.         String sReturn = "";
  269.         for (int i = 0; i < aSource.length; i++) {
  270.             if (i > 0) {
  271.                 sReturn += ",";
  272.             }
  273.             sReturn += aSource[i];
  274.         }
  275.         return sReturn;
  276.     }
  277.     /**
  278.      * 將數組中的元素連成一個以給定字符分隔的字符串
  279.      * @param aSource 源數組
  280.      * @param sChar 分隔符
  281.      * @return 字符串
  282.      */
  283.     public String arrayToString(String[] aSource, String sChar) {
  284.         String sReturn = "";
  285.         for (int i = 0; i < aSource.length; i++) {
  286.             if (i > 0) {
  287.                 sReturn += sChar;
  288.             }
  289.             sReturn += aSource[i];
  290.         }
  291.         return sReturn;
  292.     }
  293.     /**
  294.      * 將兩個字符串的全部元素連結爲一個字符串數組
  295.      * @param array1 源字符串數組1
  296.      * @param array2 源字符串數組2
  297.      * @return String[]
  298.      */
  299.     public String[] arrayAppend(String[] array1, String[] array2) {
  300.         int iLen = 0;
  301.         String aReturn[] = null;
  302.         if (array1 == null) {
  303.             array1 = new String[0];
  304.         }
  305.         if (array2 == null) {
  306.             array2 = new String[0];
  307.         }
  308.         iLen = array1.length;
  309.         aReturn = new String[iLen + array2.length];
  310.         /**
  311.          * 將第一個字符串數組的元素加到結果數組中
  312.          */
  313.         for (int i = 0; i < iLen; i++) {
  314.             aReturn[i] = array1[i];
  315.         }
  316.         /**
  317.          * 將第二個字符串數組的元素加到結果數組中
  318.          */
  319.         for (int i = 0; i < array2.length; i++) {
  320.             aReturn[iLen + i] = array2[i];
  321.         }
  322.         return aReturn;
  323.     }
  324.     /**
  325.      * 將兩個對象數組中的全部元素連結爲一個對象數組
  326.      * @param array1 源字符串數組1
  327.      * @param array2 源字符串數組2
  328.      * @return Object[]
  329.      */
  330.     public Object[] arrayAppend(Object[] array1, Object[] array2) {
  331.         int iLen = 0;
  332.         Object aReturn[] = null;
  333.         if (array1 == null) {
  334.             array1 = new Object[0];
  335.         }
  336.         if (array2 == null) {
  337.             array2 = new Object[0];
  338.         }
  339.         iLen = array1.length;
  340.         aReturn = new Object[iLen + array2.length];
  341.         /**
  342.          * 將第一個對象數組的元素加到結果數組中
  343.          */
  344.         for (int i = 0; i < iLen; i++) {
  345.             aReturn[i] = array1[i];
  346.         }
  347.         /**
  348.          * 將第二個對象數組的元素加到結果數組中
  349.          */
  350.         for (int i = 0; i < array2.length; i++) {
  351.             aReturn[iLen + i] = array2[i];
  352.         }
  353.         return aReturn;
  354.     }
  355.     /**
  356.      * 拆分以逗號分隔的字符串,並存入String數組中
  357.      * @param sSource 源字符串
  358.      * @return String[]
  359.      */
  360.     public String[] strToArray(String sSource) {
  361.         String aReturn[] = null;
  362.         StringTokenizer st = null;
  363.         st = new StringTokenizer(sSource, ",");
  364.         aReturn = new String[st.countTokens()];
  365.         int i = 0;
  366.         while (st.hasMoreTokens()) {
  367.             aReturn[i] = st.nextToken();
  368.             i++;
  369.         }
  370.         return aReturn;
  371.     }
  372.     /**
  373.      * 拆分以給定分隔符分隔的字符串,並存入字符串數組中
  374.      * @param sSource  源字符串
  375.      * @param sChar 分隔符
  376.      * @return String[]
  377.      */
  378.     public static String[] strToArray(String sSource, String sChar) {
  379.         String aReturn[] = null;
  380.         StringTokenizer st = null;
  381.         st = new StringTokenizer(sSource, sChar);
  382.         int i = 0;
  383.         aReturn = new String[st.countTokens()];
  384.         while (st.hasMoreTokens()) {
  385.             aReturn[i] = st.nextToken();
  386.             i++;
  387.         }
  388.         return aReturn;
  389.     }
  390.     /**
  391.      * 拆分以給定分隔符分隔的字符串,並存入整型數組中
  392.      * @param sSource 源字符串
  393.      * @param sChar 分隔符
  394.      * @return int[]
  395.      */
  396.     public static int[] strToArray(String sSource, char sChar) {
  397.         int aReturn[] = null;
  398.         StringTokenizer st = null;
  399.         st = new StringTokenizer(sSource, String.valueOf(sChar));
  400.         int i = 0;
  401.         aReturn = new int[st.countTokens()];
  402.         while (st.hasMoreTokens()) {
  403.             aReturn[i] = Integer.parseInt(st.nextToken());
  404.             i++;
  405.         }
  406.         return aReturn;
  407.     }
  408.     /**
  409.      * 將以逗號分隔的字符串的每一個元素加上單引號 如: 1000,1001,1002 --> '1000','1001','1002'
  410.      * @param sSource 源串
  411.      * @return String
  412.      */
  413.     public String addMark(String sSource) {
  414.         String sReturn = "";
  415.         StringTokenizer st = null;
  416.         st = new StringTokenizer(sSource, ",");
  417.         if (st.hasMoreTokens()) {
  418.             sReturn += "'" + st.nextToken() + "'";
  419.         }
  420.         while (st.hasMoreTokens()) {
  421.             sReturn += "," + "'" + st.nextToken() + "'";
  422.         }
  423.         return sReturn;
  424.     }
  425.     /**
  426.      * 刪除磁盤上的文件
  427.      * @param fileName 文件全路徑
  428.      * @return boolean
  429.      */
  430.     public boolean deleteFile(String fileName) {
  431.         File file = new File(fileName);
  432.         return file.delete();
  433.     }
  434.     /**
  435.      * 判斷字符串是否可轉換成數字
  436.      * @param fileName 源串
  437.      * @return boolean
  438.      */
  439.     public static boolean isNumber(String strInput){
  440.         boolean bRs=false;
  441.         int nRs=0;
  442.         try{
  443.             nRs=Integer.parseInt(strInput);
  444.             bRs=true;
  445.         }catch(Exception e){
  446.             bRs=false;
  447.         }
  448.             return bRs;
  449.     }
  450.     /**
  451.      * 判斷輸入的字符是不是IP地址的形式
  452.      * @param fileName 源串
  453.      * @return boolean
  454.      */
  455.     public static boolean isIp(String strIp){
  456.         boolean bRs=false;
  457.         int nCount=0;
  458.         try{
  459.             String strTmp="";
  460.             StringTokenizer st=new StringTokenizer(strIp,".");
  461.             while (st.hasMoreElements()){
  462.                 nCount++;
  463.                 strTmp=st.nextToken();
  464.                 if(isBigger("1",strTmp) || isBigger(strTmp,"255"))
  465.                     return false;
  466.             }
  467.             if (nCount==4)
  468.                 bRs=true;
  469.         } catch(Exception e){
  470.             bRs=false;
  471.         }
  472.         return bRs;
  473.     }
  474. }

        此類包含的方法已經在實際項目開發中使用經過,這樣把日常開發中常常用到的小功能封裝到一個公共類裏面,即減小了代碼量、提升了代碼重用率,又能夠很方便的查詢、使用,統一修改,提升了勞動率,甚至有些結構功能類似的系統間接口小程序均可以直接保留其餘接口的功能框架,只改變其中的業務邏輯就能夠了,很是方便。

        另外,若是你們有什麼好的功能函數,但願你們也可以貼上來分享一下^-^

相關文章
相關標籤/搜索