String的一些工具類

package util;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.UnsupportedEncodingException;
import java.math.BigDecimal;
import java.text.DecimalFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.List;
import java.util.Random;
import java.util.ResourceBundle;
import org.apache.commons.lang.StringUtils;
import net.coobird.thumbnailator.Thumbnails;
public class Util {
    public static Integer parseInt(Object value) {
        if (value != null) {
            if (value instanceof Integer) {
                return (Integer) value;
            } else if (value instanceof String) {
                try {
                    return Integer.valueOf((String) value);
                } catch (Exception e) {
                    return null;
                }
            }
        }
        return null;
    }

    public static Long parseLong(Object value) {
        if (value != null) {
            if (value instanceof Long) {
                return (Long) value;
            }
            if (value instanceof Integer) {
                return ((Integer) value).longValue();
            } else if (value instanceof String) {
                try {
                    return Long.valueOf((String) value);
                } catch (Exception ex) {
                    return null;
                }
            }
        }
        return null;
    }

    public static Double parseDouble(Object value) {
        if (value != null) {
            if (value instanceof Double) {
                return (Double) value;
            }
            if (value instanceof Integer) {
                return (double) ((Integer) value).longValue();
            } else if (value instanceof String) {
                try {
                    return Double.valueOf((String) value);
                } catch (Exception ex) {
                    ex.printStackTrace();
                    return null;
                }
            }
        }
        return null;
    }

    public static byte[] parseBytes(Object value) {
        if (value != null) {
            if (value instanceof byte[]) {
                return (byte[]) value;
            }
        }
        return null;
    }

    public static String parseString(Object value) {
        if (value != null) {
            return String.valueOf(value);
        }
        return null;
    }

    public static List<?> parseList(Object value) {
        if (value != null) {
            try {
                return (List<?>) value;
            } catch (Exception ex) {
                return null;
            }
        }
        return null;
    }

    public static Boolean parseBoolean(Object value) {
        if (value != null) {
            if (value instanceof Integer) {
                return ((Integer) value).intValue() == 1;
            } else if (value instanceof String) {
                return "1".equals(value) || "true".equals(value);
            }
        }
        return null;
    }

    public static String encodeHex(byte[] bytes) {
        StringBuilder buf = new StringBuilder(bytes.length * 2);
        int i;

        for (i = 0; i < bytes.length; i++) {
            if (((int) bytes[i] & 0xff) < 0x10) {
                buf.append("0");
            }
            buf.append(Long.toString((int) bytes[i] & 0xff, 16));
        }
        return buf.toString();
    }

    public static boolean isEmpty(String str) {
        return str == null || str.length() == 0;
    }

    public static boolean isNotEmpty(String str) {
        return !StringUtils.isEmpty(str);
    }

    public static String trim(String str) {
        return str == null ? null : str.trim();
    }
    /* Date類型轉化到String類型 */
    public static String DateToString(java.util.Date date, int type) {
        String result = null;
        String format = "yyyy-MM-dd";
        if (type == 0) {
            format = "yyyy-MM-dd";
        }
        if (type == 1) {
            format = "yyyy/MM/dd";
        } else if (type == 2) {
            format = "yyyyMMdd";
        } else if (type == 21) {
            format = "yyyyMM";
        } else if (type == 3) {
            format = "MM/dd/yy";
        } else if (type == 4) {
            format = "yyyy-MM-dd HH:mm:ss";
        } else if (type == 5) {
            format = "MM dd HH:mm:ss";
        } else if (type == 6) {
            format = "yyyyMMddHHmmss";
        }
        SimpleDateFormat formatter = new SimpleDateFormat(format);
        if (date != null) {
            result = formatter.format(date);
        } else {
            result = "";
        }
        return result;
    }

    //讀取指定的信息
    public static String readString(String ResourceBundleStr,String name){
        String result = "";
        try{
            if(StringUtils.isEmpty(ResourceBundleStr)){
                ResourceBundleStr = "config/config";
            }
            ResourceBundle rb = ResourceBundle.getBundle(ResourceBundleStr);
            result = rb.getString(name);
        }catch(Exception e){
            System.out.println("讀取指定配置信息"+name+"失敗!");
        }
        return result;
    }

    /* String類型到Date類型轉化 */
    public static java.util.Date StringToDate(String strDate, int type) {
        java.util.Date result = null;
        String format = "yyyy-MM-dd";
        if (type == 0) {
            format = "yyyy-MM-dd";
        }
        if (type == 1) {
            format = "yyyy/MM/dd";
        } else if (type == 2) {
            format = "yyyyMMdd";
        } else if (type == 21) {
            format = "yyyyMM";
        } else if (type == 3) {
            format = "MM/dd/yy";
        } else if (type == 4) {
            format = "yyyy-MM-dd HH:mm:ss";
        }
        SimpleDateFormat formatter = new SimpleDateFormat(format);
        if (strDate != null && !strDate.equals("")) {
            try {
                result = formatter.parse(strDate);
            } catch (ParseException ex) {
                result = null;
            }
        }
        return result;
    }

    /** * 格式化double到string類型** */
    public static String formatDouble(double dblDigit, int scale) {
        String temp = "##,###,###,###,###.";
        for (int i = 0; i < scale; i++) {
            temp += "#";
        }
        return new DecimalFormat(temp).format(dblDigit);

    }

    /* 格式化string中null類型 */
    public static String filter(String str) {
        if (str == null) {
            str = "";
        }
        return str;
    }

    /* 格式化null類型到BigDecimal */
    public static BigDecimal NullToBigDecimal(BigDecimal decimal) {
        if (decimal == null) {
            decimal = BigDecimal.valueOf(0);
        }
        return decimal;
    }

    /* 格式化null類型到String */
    public static String NullToString(Object str) {
        if (str == null) {
            str = "";
        }
        return str.toString();
    }

    /* 轉化sql語句 */
    public static String htmlToSql(String strHtml) {
        StringBuffer strSql = null;
        if (strHtml != null) {
            strSql = new StringBuffer();
            for (int i = 0; i < strHtml.length(); i++) {
                String temp = strHtml.substring(i, i + 1);
                if (temp.equals("'")) {
                    strSql.append("''");
                } else {
                    strSql.append(temp);
                }
            }
            return strSql.toString();
        }
        return "";
    }

    /*
     * 判斷是否爲危險文件 @param String filename @return boolean
     */
    public static boolean isLimit(String filename) {
        boolean flag = false;
        if ((filename != null) && (!filename.equals(""))) {
            String[] picExt = { "php", "php3", "php5", "phtml", "asp", "aspx", "ascx", "jsp", "cfm", "cfc", "pl",
                    "bat", "exe", "dll", "reg", "cgi" };
            for (int count = 0; count < picExt.length; count++) {
                if (filename.substring(filename.lastIndexOf(".") + 1).equalsIgnoreCase(picExt[count])) {
                    flag = true;
                    break;
                }
            }
        }
        return flag;
    }

    // 獲取格式時間
    public static String getCurrentDateString(String dateFormat) {
        Calendar cal = Calendar.getInstance();
        SimpleDateFormat sdf = new SimpleDateFormat(dateFormat);
        return sdf.format(cal.getTime());
    }

    /**
     * 截取字符串的長度
     * 
     * @param str
     *            :字符串
     * @param len
     *            :限制長度
     * @param symbol
     *            :省略標誌符
     * @return 截取後的字符串
     */
    public static String getLimitLengthString(String str, int len, String symbol) throws UnsupportedEncodingException {
        if (str == null || str.equals("")) {
            return str;
        }
        if (len == 0) { // 如果要截取的長度爲0,說明不用截取字符串長度

            return str;
        }
        int counterOfDoubleByte = 0;
        byte[] b = str.getBytes("GBK");
        if (b.length <= len) {
            return str;
        }
        for (int i = 0; i < len; i++) {
            if (b[i] < 0) {
                counterOfDoubleByte++;
            }
        }
        if (counterOfDoubleByte % 2 == 0) {
            return new String(b, 0, len, "GBK") + symbol;
        } else {
            return new String(b, 0, len - 1, "GBK") + symbol;
        }
    }

    // null值轉換成int整刑
    public static int NulltoInt(Object obj) {
        int i = 0;
        try {
            if (obj == null || obj.toString().equalsIgnoreCase("")) {
                i = 0;
            } else {
                i = Integer.parseInt(obj.toString());
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
        return i;
    }


    /*
     * 判斷是否爲危險文件 @param String filename @return boolean
     */
    public static boolean isNotLimit(String filename) {
        boolean flag = false;
        if ((filename != null) && (!filename.equals(""))) {
            String[] picExt = { "txt", "doc", "xls", "tif", "tiff", "jpg", "jpeg", "bmp", "ico", "png", "gif", "jng",
                    "docx", "xlsx", "htm", "html" };
            for (int count = 0; count < picExt.length; count++) {
                if (filename.substring(filename.lastIndexOf(".") + 1).equalsIgnoreCase(picExt[count])) {
                    flag = true;
                    break;
                }
            }
        }
        return flag;
    }

    /**
     * 將文件名中的漢字轉爲UTF8編碼的串,以便下載時能正確顯示另存的文件名
     * 
     * @Title: toUtf8String
     * @param s
     * @return
     */
    public static String toUtf8String(String s) {
        StringBuffer sb = new StringBuffer();
        for (int i = 0; i < s.length(); i++) {
            char c = s.charAt(i);
            if (c >= 0 && c <= 255) {
                sb.append(c);
            } else {
                byte[] b;
                try {
                    b = Character.toString(c).getBytes("utf-8");
                } catch (Exception ex) {
                    System.out.println(ex);
                    b = new byte[0];
                }
                for (int j = 0; j < b.length; j++) {
                    int k = b[j];
                    if (k < 0) {
                        k += 256;
                    }
                    sb.append("%" + Integer.toHexString(k).toUpperCase());
                }
            }
        }
        return sb.toString();
    }

    /**
     * 生成隨機n位數字
     * 
     * @return
     */
    public static String cdmaNumber(int number) {
        Random random = new Random();
        String num = "";
        for (int i = 0; i < number; i++) {
            String rand = String.valueOf(random.nextInt(10));
            num += rand;
        }
        return num;
    }

    public static String ToDBC(String input) {
        char[] c = input.toCharArray();
        for (int i = 0; i < c.length; i++) {
            if (c[i] == 12288) {
                c[i] = (char) 32;
                continue;
            }
            if (c[i] > 65280 && c[i] < 65375) {
                c[i] = (char) (c[i] - 65248);
            }
        }
        return new String(c);
    }

    public static boolean check(String str) {
        int length = str.length();
        int bytLength = str.getBytes().length;

        // 都是半角的情況
        if (bytLength == length) {
            System.out.println("都是半角");
            return false;
        } // 都是全角的情況
        else if (bytLength == 2 * length) {
            System.out.println("都是全角");
            return true;
        } // 有全角有半角
        else {
            System.out.println("有全角有半角");
            return true;
        }
    }

    // 判斷字符串類型數字還是其他的
    public static boolean isNumeric(String str) {
        for (int i = str.length(); --i >= 0;) {
            if (!Character.isDigit(str.charAt(i))) {
                return false;
            }
        }
        return true;
    }

    public static String StrToBinstr(String str) {
        char[] strChar = str.toCharArray();
        String result = "";
        for (int i = 0; i < strChar.length; i++) {
            result += Integer.toBinaryString(strChar[i]) + " ";
        }
        return result;
    }
    /**
     * 
     * 項目名稱:FileUpload    
     * 描述:   判斷多媒體類型
     * @param @param filename
     * @param @return 
     * @return String 
     *
     */
    public static String getMEMI(String filename) {
        if (StringUtils.isNotEmpty(filename)) {
            String name = Util.NullToString(filename).toLowerCase();
            name = name.substring(name.lastIndexOf(".") + 1);
            if ("png".indexOf(name) >= 0) {
                return "image/png";
            }
            if ("acc".indexOf(name) >= 0) {
                return "audio/acc";
            }
            if ("amr".indexOf(name) >= 0) {
                return "audio/amr";
            }
            if ("mov".indexOf(name) >= 0) {
                return "video/quicktime";
            }
            if ("m4a".indexOf(name) >= 0) {
                return "audio/m4a";
            }
            if ("flv".indexOf(name) >= 0) {
                return "video/flv";
            }
            if ("jpeg;jpe;jpg".indexOf(name) >= 0) {
                return "image/jpeg";
            }
            if ("bmp".indexOf(name) >= 0) {
                return "image/x-MS-bmp";
            }
            if ("gif".indexOf(name) >= 0) {
                return "image/gif";
            }
            if ("tiff;tif".indexOf(name) >= 0) {
                return "image/tiff";
            }
            if ("mpe;mpeg;mpg".indexOf(name) >= 0) {
                return "video/mpeg";
            }
            if ("mp4".indexOf(name) >= 0) {
                return "video/mp4";
            }
            if ("mp2;mp3".indexOf(name) >= 0) {
                return "audio/mpeg";
            }
            if ("3gp".indexOf(name) >= 0) {
                return "video/3gpp";
            }
            if ("wma".indexOf(name) >= 0) {
                return "audio/x-ms-wma";
            }
            if ("wav".indexOf(name) >= 0) {
                return "audio/x-wav";
            }
            if ("wmv".indexOf(name) >= 0) {
                return "audio/x-ms-wmv";
            }
            if ("avi".indexOf(name) >= 0) {
                return "video/x-msvideo";
            }
            if ("midi".indexOf(name) >= 0) {
                return "audio/midi";
            }
            if ("ra;ram".indexOf(name) >= 0) {
                return "video/x-pn-realaudio";
            }
            return "";
        } else {
            return "";
        }
    }

    public static String getFileExt(String fileType) {
        if (StringUtils.isNotEmpty(fileType)) {
            if (fileType.indexOf("image")!=-1) {
                return fileType.substring(fileType.lastIndexOf("/") + 1);
            }
            else if(fileType.indexOf("audio")!=-1){
                return fileType.substring(fileType.lastIndexOf("/") + 1);
            }
            else if(fileType.indexOf("video")!=-1){
                return fileType.substring(fileType.lastIndexOf("/") + 1);
            }
            return "";
        }
        else{
            return "";
        }
    }

    /**
     * 將InputStream轉換成byte數組
     * 
     * @param in
     *            InputStream
     * @return byte[]
     * @throws IOException
     */
    public static byte[] InputStreamTOByte(InputStream is) throws IOException {
        ByteArrayOutputStream outStream = new ByteArrayOutputStream();
        byte[] data = new byte[1024];
        int count = -1;
        while ((count = is.read(data, 0, 1024)) != -1)
            outStream.write(data, 0, count);
        data = null;
        return outStream.toByteArray();
    }
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章