1. 程式人生 > >java常用工具類(不定時更新)

java常用工具類(不定時更新)

1、常用的json字串工具類

以下為json工具類程式碼:

package com.ct10000.sc.commons.toolkit.jsonTool;
import com.fasterxml.jackson.databind.ObjectMapper;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import javax.xml.bind.*;
import java.io.IOException;
import java.io.StringReader;
import 
java.io.StringWriter; import java.io.Writer; /** * 處理json的工具類 * * Created by ryh on 15-9-15. */ public class JsonUtility { /** * 記錄日誌資訊 */ private static Logger logger = LogManager.getLogger(JsonUtility.class); /** * 用於處理json字串的靜態物件 */ private static ObjectMapper objectMapper = new ObjectMapper();
/** * 預設構造器 */ private JsonUtility() { } /** * Object的物件進行編碼 * * @param object 編碼物件 * @return 一個編碼後的字串 * @throws Exception */ public static String convertToXml(Object object) throws Exception { return convertToXml(object, "UTF-8"); } /** * object的物件轉化成XML字串
* * @param object 轉化物件 * @param encoding 編碼方式 * @return 一個物件格式的XML字串 * @throws Exception */ public static String convertToXml(Object object, String encoding) throws JAXBException{ String result = ""; try { JAXBContext context = JAXBContext.newInstance(object.getClass()); Marshaller marshaller = context.createMarshaller(); marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true); marshaller.setProperty(Marshaller.JAXB_ENCODING, encoding); StringWriter writer = new StringWriter(); marshaller.marshal(object, writer); result = writer.toString(); } catch (JAXBException e) { logger.error("物件轉xml字串的錯誤日誌-->>"+e.getMessage(), e); } logger.debug("生成物件轉XML字串的除錯日誌-->>"+result); return result; } /** * xml字串轉換成JavaBean實體 * * @param xml XML字串 * @param clazz 位元組碼型別 * @param <T> 轉換的泛型 * @return 一個轉化的實體物件 */ public static <T> T converyToJavaBean(String xml, Class<T> clazz) throws JAXBException{ T t = null; try { JAXBContext context = JAXBContext.newInstance(clazz); Unmarshaller unmarshaller = context.createUnmarshaller(); t = (T) unmarshaller.unmarshal(new StringReader(xml)); } catch (JAXBException e) { logger.error("xml轉實體bean的錯誤日誌-->>"+e.getMessage(), e); } return t; } /** * 物件轉換為json字串 * * @param object 轉化的實體物件 * @return 裝換後的json字串 */ public static synchronized String objectToJson(Object object) throws IOException { Writer writer = null; String json = ""; try { writer = new StringWriter(); objectMapper.writeValue(writer, object); json = writer.toString(); } catch (IOException e) { logger.error("實體物件轉JSON字串的錯誤日誌-->>"+e.getMessage(),e); } finally { try { if (writer != null) { writer.close(); } } catch (IOException e) { logger.error("實體物件轉JSON字串關閉writer的錯誤日誌-->>"+e.getMessage(),e); } } logger.debug("生成實體轉JSON字串的除錯日誌-->>"+json); return json; } /** * json字元轉換成物件 * * @param json json字串 * @param clazz 實體物件的class * @param <T> 泛型實體 * @return 返回轉換後的實體物件 */ public static synchronized <T> T jsonToObject(String json, Class<T> clazz) throws IOException { T object = null; try { object = objectMapper.readValue(json, clazz); } catch (IOException e) { logger.error("JSON字串轉實體bean的錯誤日誌-->>"+e.getMessage(),e); } return object; } }

2、常用的字串工具類

以下為字串工具類程式碼:

package com.ct10000.sc.commons.toolkit.stringTool;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import java.util.UUID;
/**
 * 常用工具類
* <p/>
* 1、生成UUID字串
* 2、隨機生成3位數字符串
* Created by ryh on 15-4-2.
 */
public class StringUtility {

    /**
     * 記錄日誌資訊
*/
private static Logger logger = LogManager.getLogger(StringUtility.class);
/**
     * 生成UUID字串
*
     * @return 32位的UUID金鑰
*/
public static String getUUID() throws Exception{
        String uuid = UUID.randomUUID().toString();
uuid = uuid.substring(0, 8) + uuid.substring(9, 13) + uuid.substring(14, 18) + uuid.substring(19, 23) + uuid.substring(24);
logger.debug("獲取32位的UUID的除錯日誌-->>" + uuid);
        return uuid;
}

    /**
     * 隨機生成3位數字符串
*
     * @return 一個三位數的隨機碼字串
*/
public static String getRandom() {
        int number;
        while (true) {
            number = (int) (Math.random() * 1000);
            if (number >= 100 && number < 1000) {
                break;
}
        }
        String string=String.valueOf(number);
logger.debug("獲取3位的隨機碼字串的除錯日誌-->>" + string);
        return string;
}

}
3、時間日期工具類

以下為時間日期工具類程式碼:

package com.ct10000.sc.commons.toolkit.dataTool;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
/**
 * 時間格式轉字串處理工具類
*
 * Created by ryh on 15-9-15.
 */
public class DateUtility {

    /**
     * 記錄日誌資訊
*/
private static Logger logger = LogManager.getLogger(DateUtility.class);
/**
     * 將當前時間格式化,格式化的格式yyyy-MM-dd HH:mm:ss
     *
     * @return 一個格式化的字串time
     */
public static String getTime() throws Exception{
        Date date = new Date();
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String time = formatter.format(date);
logger.debug("當前時間格式化的除錯日誌-->>" + time);
        return time;
}

    /**
     * 將當前時間格式化,格式化的格式yyyy-MM-dd
     *
     * @return 一個格式化的字串time
     */
public static String getDate() throws Exception {
        Date date = new Date();
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
String time = formatter.format(date);
logger.debug("當前時間格式化的除錯日誌-->>" + time);
        return time;
}

    /**
     * 將輸入時間格式化,格式化的格式yyyy-MM-dd HH:mm:ss
     *
     * @return 一個格式化的字串time
     */
public static String timeToString(Date date) throws Exception {
        SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String time = formatter.format(date);
logger.debug("輸入時間格式化的除錯日誌-->>" + time);
        return time;
}

    /**
     * 將輸入時間格式化,格式化的格式yyyy-MM-dd
     *
     * @return 一個格式化的字串time
     */
public static String dateToString(Date date) throws Exception {
        SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
String time = formatter.format(date);
logger.debug("輸入時間格式化的除錯日誌-->>" + time);
        return time;
}

    /**
     * 把標準時區轉化成當前時區
*
     * @param date 時間
* @return 當前時區的時間
* @throws Exception
     */
public static Date dateOfDate(Date date) throws Exception{
        Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
calendar.add(Calendar.HOUR, +8);
Date date1=calendar.getTime();
        return date1;
}

}
4、MD5工具類

以下為MD5工具類程式碼:

package com.ct10000.sc.commons.toolkit.md5Tool;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
/**
 * MD5工具類
*
 * Created by ryh on 15-9-16.
 */
public class MD5Utility {

    /**
     * 記錄日誌資訊
*/
private static Logger logger = LogManager.getLogger(MD5Utility.class);
/**
     * MD5加碼 生成32md5(不可逆的)
     *
     * @param inStr 加密的字串
* @return 一個加密的32位金鑰
*/
public static String string2MD5(String inStr) throws NoSuchAlgorithmException{
        MessageDigest md5;
String string="";
        try {
            md5 = MessageDigest.getInstance("MD5");
} catch (NoSuchAlgorithmException e) {
            logger.error("MD5加密實現的錯誤日誌-->>"+e.getMessage(), e);
            return string;
}
        char[] charArray = inStr.toCharArray();
        byte[] byteArray = new byte[charArray.length];
        for (int i = 0; i < charArray.length; i++) {
            byteArray[i] = (byte) charArray[i];
}
        byte[] md5Bytes = md5.digest(byteArray);
StringBuffer hexValue = new StringBuffer();
        for (int i = 0; i < md5Bytes.length; i++) {
            int val = ((int) md5Bytes[i]) & 0xff;
            if (val < 16) {
                hexValue.append("0");
}
            hexValue.append(Integer.toHexString(val));
}
        string=hexValue.toString();
logger.debug("MD5加密的32位金鑰的除錯日誌-->>" + string);
        return string;
}

    /**
     * 加密解密演算法 執行一次加密,兩次解密
*
     * @param inStr 編譯的字串
* @return 返回一個二次加密的字串
*/
public static String convertMD5(String inStr) throws Exception{
        char[] a = inStr.toCharArray();
        for (int i = 0; i < a.length; i++) {
            a[i] = (char) (a[i] ^ 't');
}
        String string = new String(a);
logger.debug("MD5加密的二次加密的字串的除錯日誌-->>" + string);
        return string;
}

}