类型转换
来源:互联网 发布: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, "&", "&");
str = replace(str, "/"", """);
str = replace(str, "<", "<");
str = replace(str, ">", ">");
return str;
}
public static String toHtmlStr(Object obj)
{
if (obj == null) return "";
String str = replace(obj, "&", "&");
str = replace(str, "/"", """);
str = replace(str, "<", "<");
str = replace(str, ">", ">");
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;