类型转换

来源:互联网 发布:mac 修容粉多少钱 编辑:程序博客网 时间:2024/05/18 21:11


import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.security.MessageDigest;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.StringTokenizer;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

import net.sf.dozer.util.mapping.DozerBeanMapper;

import org.apache.struts.upload.FormFile;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

import com.wzinfo.base.file.UploadFile;
import com.wzinfo.base.mail.SpringSendMail;

public class Tools
{
 private static ApplicationContext context;
    public static String replace(Object obj, String old, String due)
    {
        if (obj == null) return "";
        String src = obj.toString().trim();
        if (old == null || old.equals("") || src.equals("")) return src;

        int iPos = -1;
        int iStart = 0;
        int iSrcLen = src.length();
        int iOldLen = old.length();

        if ( (iPos = src.indexOf(old)) < 0) return src;
        String des = (due == null?"":due);
        StringBuffer sb = new StringBuffer(iSrcLen + (iSrcLen * des.length() / iOldLen));
        while ( (iPos = src.indexOf(old, iStart)) > -1)
        {
            sb.append(src.substring(iStart, iPos)).append(des);
            iStart = iPos + iOldLen;
        }
        if (iStart < iSrcLen) sb.append(src.substring(iStart));
        return sb.toString();
    }

    public static String encode(String str)
    {
        try
        {
            // MD5, SHA, SHA-1 (encrypt)
            MessageDigest md = MessageDigest.getInstance("MD5");
            byte[] bytes = md.digest(str.getBytes());
            StringBuffer sb = new StringBuffer(2 * bytes.length);
            for (int i = 0; i < bytes.length; ++i)
            {
                int k = bytes[i] & 0xFF;
                if (k < 0x10) sb.append('0');
                sb.append(Integer.toHexString(k));
            }
            return sb.toString();
        }
        catch (java.security.NoSuchAlgorithmException e)
        {
            System.err.println("encrypt error: "+e);
        }
        return null;
    }

    public static String toStr(Object obj)
    {
        return (obj == null?"":obj.toString().trim());
    }

    public static String toStr(double num)
    {
        return String.valueOf(num);
    }

    public static String toStr(long num)
    {
        return String.valueOf(num);
    }

    public static String lower(Object obj)
    {
        return toStr(obj).toLowerCase();
    }

    public static String upper(Object obj)
    {
        return toStr(obj).toUpperCase();
    }
   
    public static String toStr(Map map, String kw)
    {
        if (map==null||kw==null) return "";
        Object obj = map.get(kw.trim());
        return (obj==null?"":obj.toString().trim());
    }

    public static int toInt(Map map, String kw)
    {
        return toInt(toStr(map, kw));
    }
   
    public static int toInt(Object obj)
    {
        try
        {
            String val = (obj == null?"":obj.toString().trim());
            if (val.equals("")) return 0;
            return Integer.parseInt(val);
        }
        catch (Exception ex)
        {
            return 0;
        }
    }
   
    public static long toLng(Object obj)
    {
        try
        {
            String val = (obj == null?"":obj.toString().trim());
            if (val.equals("")) return 0l;
            return Long.parseLong(val);
        }
        catch (Exception e)
        {
            return 0l;
        }
    }
   
    public static long toLng(Map map, String kw)
    {
        return toLng(toStr(map, kw));
    }
   
    public static double toDbl(Object obj)
    {
        try
        {
            if (obj == null || obj.toString().trim().equals("")) return 0.00d;
            return Double.parseDouble(obj.toString().trim());
        }
        catch (Exception e)
        {
            return 0.00d;
        }
    }
   
    public static double toDbl(Map map, String kw)
    {
        return toDbl(toStr(map, kw));
    }
   
    public static String encode36L(long lng) // test ok.
    {
        if (lng < 0) return "0";
        String str = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
        StringBuffer sb = new StringBuffer(16);
        int idx = 0;
        long k = lng;
        while (k > 35)
        {
            idx = (int) (k % 36);
            sb.append(str.charAt(idx));
            k = k / 36;
        }
        idx = (int)k;
        sb.append(str.charAt(idx));
        return sb.reverse().toString();
    }

    public static long decode36L(String sz36L) // test ok.
    {
        if (sz36L == null || sz36L.trim().equals("")) return 0;
        String str = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
        StringBuffer sb = new StringBuffer(sz36L.trim()).reverse();
        long l36 = 1;
        long lng = 0;
        int idx = 0;
        int len = sb.length();
        for (int i = 0; i < len; i++)
        {
            idx = str.indexOf(sb.charAt(i));
            if (i == 0) lng = idx;
            else
            {
                l36 = (l36 << 5) + (l36 << 2);
                lng += idx * l36;
            }
        }
        return lng;
    }

    public static String repeat(char ch, int width)
    {
        if (width < 2 || width > 1024) return String.valueOf(ch);
        // <1k 512*256
        StringBuffer sb = new StringBuffer(width * 2);
        int len = 0;
        sb.append(String.valueOf(ch));
        while (len < width)
        {
            sb.append(sb);
            len = sb.length();
        }
        return sb.substring(0, width);
    }

    public static String lpad(Object obj, int width, char ch)
    {
        String src = (obj == null?"":obj.toString().trim());
        int iSrcLen = src.length();
        if (iSrcLen > width) return src;
        StringBuffer sb = new StringBuffer(width + iSrcLen);
        sb.append(repeat(ch, width)).append(src);
        return sb.substring(sb.length() - width);
    }

    public static String rpad(Object obj, int width, char ch)
    {
        String src = (obj == null?"":obj.toString().trim());
        int iSrcLen = src.length();
        if (iSrcLen > width) return src;
        StringBuffer sb = new StringBuffer(width + iSrcLen);
        sb.append(src).append(repeat(ch, width));
        return sb.substring(0, width);
    }
   
    public static String toHtmlValue(Object obj)
    {
        if (obj == null) return "";
        String str = replace(obj, "&", "&amp;");
        str = replace(str, "/"", "&quot;");
        str = replace(str, "<", "&lt;");
        str = replace(str, ">", "&gt;");       
        return str;
    }
   
    public static String toHtmlStr(Object obj)
    {
        if (obj == null) return "";
        String str = replace(obj, "&", "&amp;");
        str = replace(str, "/"", "&quot;");
        str = replace(str, "<", "&lt;");
        str = replace(str, ">", "&gt;");
        str = replace(str, "/r/n", "<br>");
        str = replace(str, "/n/r", "<br>");
        str = replace(str, "/n", "<br>");
        str = replace(str, "/r", "<br>");
        str = replace(str, "//lt;", "<");
        str = replace(str, "//gt;", ">");
        return str;
    }

    public static String toQstr(Object obj)
    {
        if (obj == null) return "";
        String str = replace(obj, "'", "_");
        str = replace(str, "%", "_");
        str = replace(str, "-", "_");
        str = replace(str, ";", "_");
        str = replace(str, "*", "%");
        return str;
    }

    public static String toInsStr(Object obj)
    {
        String str = (obj==null?"":obj.toString().trim());
        if (str.length()<1) return "";
        str = replace(obj, "'", "''");
        str = replace(str, "%", "_");
        str = replace(str, "//", "");
        return str;
    }
   
    public static String currentDateTime(String style)
    {
        SimpleDateFormat df = null;
        try
        {
            df = new SimpleDateFormat(style);
        }
        catch (Exception ex)
        {
            df = new SimpleDateFormat("yyyyMMddHHmmss");
        }
        return df.format(new Date());
    }

    public static String[] toArr(Object obj, char ch, int min)
    {
        String val = (obj==null?"":obj.toString().trim());
        StringTokenizer token = new StringTokenizer(val, String.valueOf(ch));
        int len = token.countTokens();
        len = (len<min?min:len);
        int idx = 0;
        String[] arr = new String[len];
        while (token.hasMoreTokens()) arr[idx++] = toStr(token.nextToken());
        for (int i=idx; i<len; i++) arr[i] = "";
        return arr;
    }

    public static int[] toIntArr(Object obj, char ch, int min)
    {
        String val=(obj==null?"":obj.toString().trim());
        StringTokenizer token = new StringTokenizer(val, String.valueOf(ch));
        int len = token.countTokens();
        int idx = 0;
        int[] arr = new int[(min>len?min:len)];
        while (token.hasMoreTokens()) arr[idx++] = toInt(token.nextToken());
        return arr;
    }

    public static String escape(Object obj)
    {
        if (obj == null) return "";
        String str = obj.toString().trim();
        StringBuffer sb = new StringBuffer(str.length() * 6);
        char ch;
        for (int i = 0; i < str.length(); i++)
        {
            ch = str.charAt(i);
            if (Character.isDigit(ch) || Character.isLowerCase(ch) || Character.isUpperCase(ch)) sb.append(ch);
            else if (ch < 256)
            {
                sb.append("%");
                if (ch < 16) sb.append("0");
                sb.append(Integer.toString(ch, 16));
            }
            else
            {
                sb.append("%u");
                sb.append(Integer.toString(ch, 16));
            }
        }
        return sb.toString();
    }
   
    public static String escepe(Object obj)
    {
     String str = replace(escape(obj), "%u", "!");
        return replace(str, "%", "|");
    }
   
    public static String unescepe(Object obj)
    {
     String str = replace(obj, "|", "%");
        return  unescape(replace(str, "!", "%u"));
    }

    public static String unescape(Object obj)
    {
        if (obj == null) return "";
        String str = obj.toString().trim();
        StringBuffer sb = new StringBuffer(str.length());
        int len = 0;
        int pos = 0;
        char ch;
        while (len < str.length())
        {
            pos = str.indexOf("%", len);
            if (pos == len)
            {
                if (str.charAt(pos + 1) == 'u')
                {
                    ch = (char)Integer.parseInt(str.substring(pos + 2, pos + 6), 16);
                    sb.append(ch);
                    len = pos + 6;
                }
                else
                {
                    ch = (char)Integer.parseInt(str.substring(pos + 1, pos + 3), 16);
                    sb.append(ch);
                    len = pos + 3;
                }
            }
            else
            {
                if (pos == -1)
                {
                    sb.append(str.substring(len));
                    len = str.length();
                }
                else
                {
                    sb.append(str.substring(len, pos));
                    len = pos;
                }
            }
        }
        return sb.toString();
    }
   
    public static boolean isFile(String file)
    {
        if (file==null || file.trim().length()<1) return false;
        File f = new File(file.trim());
        if (f.exists() && f.isFile()) return true;
        return false;
    }
   
    public static boolean isMail(String mail)
    {
        String email = toStr(mail);    
        if (email.equals("")) return false;
        String pattern = "^(([//w]+)|([//w]+[.//w-]*[//w]+))@([//w]+[//w-]*[.])+([a-zA-Z]{2,}|net|NET|com|COM)$";
        Pattern p = Pattern.compile(pattern);
        Matcher mt = p.matcher(email);
        if (mt.find()) return true;
        return false;
    }
   
    public static String curr()
 {
  return DateUtil.dateToStr(new java.util.Date());
 }

    public static long currMills()
 {
  return DateUtil.dateToLong(new java.util.Date());
 }
  
//  to接受邮箱 tos接受邮箱数组 to和tos填一个 另一个填null
 //subject主题 text正文
//  1:成功; 2:失败
 public static int sendMail(String to, String[] tos, String subject, String text){
  if(context==null){
   context = new ClassPathXmlApplicationContext("applicationContext-email.xml");
  }
     SpringSendMail sender = (SpringSendMail) context.getBean("sendmail");
        return sender.sendMail(to,tos,subject,text);
 }
   
 public static String getUpload(FormFile upload,String path) throws FileNotFoundException,IOException{
  UploadFile uploadfile=new UploadFile();
  return uploadfile.getUpload(upload, path);
 }
 
 public static int isUpload(FormFile upload,String type,int filesize){
  int errs=0;
  if(type==null){
   type=",image/pjpeg,image/bmp,image/gif,image/jpg,imgage/jpeg,";
  }
  if(filesize==0){
   filesize=200;
  }
  filesize=filesize*1024;
  if(upload==null){
   errs=Result.FILENOTFOUNT;
  }
  else if(type.indexOf(","+upload.getContentType()+",")<0){
   errs=Result.EXPROERROR;
  }
  else if(upload.getFileSize()>filesize){
   errs=upload.getFileSize();
   errs=Result.SIZEERROR;
  }
  return errs;
 }
 
    private Tools()
    {
    }
   
    private static DozerBeanMapper mapp = null;;       
   
    public static DozerBeanMapper getMapper(){   
        if(mapp==null){   
            mapp = new DozerBeanMapper();   
            List<String> mappingFiles = new ArrayList<String>();   
            mappingFiles.add("dozerMapping.xml");   
            mapp.setMappingFiles(mappingFiles);   
        }   
        return mapp;   
    }    

   
    public static void main(String[] args)
    {
        String str1 = "中国";
        String str2 = "";
        System.out.println(escape(str1));
        str2 = escape(str1);
        System.out.println(unescape(str2));       
    }
}
//String regstr = "^([a-z0-9A-Z]+[-|//.]?)+[a-z0-9A-Z]@([a-z0-9A-Z]+(-[a-z0-9A-Z]+)?//.)+[a-zA-Z]{2,}$" ;
//Pattern regex = Pattern.compile(regstr) ;
//Matcher matcher = regex.matcher(email) ;
//boolean isMatched = matcher.matches() ;
//return isMatched;  

原创粉丝点击