常用类型转换 博客分类: Util javadatepinyinStringNumber
package com.core.util;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Random;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import java.text.ParseException;
import org.apache.commons.lang.StringEscapeUtils;
import net.sourceforge.pinyin4j.PinyinHelper;
import net.sourceforge.pinyin4j.format.HanyuPinyinOutputFormat;
import net.sourceforge.pinyin4j.format.HanyuPinyinToneType;
import net.sourceforge.pinyin4j.format.HanyuPinyinVCharType;
import net.sourceforge.pinyin4j.format.exception.BadHanyuPinyinOutputFormatCombination;
public class Utility {
private static final SimpleDateFormat sdf = new SimpleDateFormat(
"yyyy-MM-dd HH:mm:ss");
private static final SimpleDateFormat sdfshort = new SimpleDateFormat(
"yyyy-MM-dd");
private static final Random randoms = new Random();
/**
* yyyy-MM-dd HH:mm:ss
*
* @param date
* @return
*/
public static String formatDate(Date date) {
if (date == null)
return "0000-00-00 00:00:00";
return sdf.format(date);
}
/**
* yyyy-MM-dd
*
* @param date
* @return
*/
public static String shortFormatDate(Date date) {
if (date == null)
return "0000-00-00";
return sdfshort.format(date);
}
/**
* yyyy-MM-dd HH:mm:ss
*
* @param str
* @return
* @throws ParseException
*/
public static Date parseDate(String str) {
if (str == null)
return null;
Date date = null;
try {
date = sdf.parse(str);
} catch (ParseException pe) {
}
return date;
}
/**
* 判断字符是否是数字
*
* @param str
* @return
*/
public static boolean isNumberString(String str) {
if (str == null || str.length() == 0)
return false;
int i = 0;
while (true) {
if (i >= str.length())
break;
char ch = str.charAt(i);
if (ch > '9' || ch < '0')
break;
i++;
}
return i == str.length();
}
/**
* 用户名为字母、数字或下划线、并不能以数字打头和纯数字
*
* @param userName
* @return
*/
public static boolean isUserName(String userName) {
boolean is = true;
String regEx = "^[a-zA-Z]{1}([a-zA-Z0-9]|[_]){3,15}$";
Pattern p = Pattern.compile(regEx);
Matcher m = p.matcher(userName);
is = m.find();
return is;
}
/**
* 判断是否是邮箱地址
*
* @param eMail
* @return
*/
public static boolean isEmail(String eMail) {
boolean is = true;
String regEx = "^\\w+((-\\w+)|(\\.\\w+))*\\@[A-Za-z0-9]+((\\.|-)[A-Za-z0-9]+)*\\.[A-Za-z0-9]+$";
Pattern p = Pattern.compile(regEx);
Matcher m = p.matcher(eMail);
is = m.find();
return is;
}
/**
* 防SQL注入
*
* @param sqlStr
* @return
*/
public static String escapeSql(String sqlStr) {
sqlStr = StringEscapeUtils.escapeSql(sqlStr);
return sqlStr;
}
/**
* 过滤request
*
* @param sqlStr
* @return
*/
public static String requestEscape(String str) {
if (str == null) {
return null;
}
str = Utility.escapeSql(str);
return str;
}
public static String wipescript(String html) {
Pattern pattern1 = Pattern.compile("<script[^>]+>.*<\\/script>");
Pattern pattern2 = Pattern.compile(" href *= *[\\s\\s]*script *:");
Pattern pattern3 = Pattern.compile(" on[\\s\\s]*=");
Pattern pattern4 = Pattern.compile("<iframe[\\s\\s]+</iframe *>");
Pattern pattern5 = Pattern.compile("<frameset[\\s\\s]+</frameset *>");
Matcher matcher1 = pattern1.matcher(html);
html = matcher1.replaceAll(" ");
Matcher matcher2 = pattern2.matcher(html);
html = matcher2.replaceAll(" ");
Matcher matcher3 = pattern3.matcher(html);
html = matcher3.replaceAll(" ");
Matcher matcher4 = pattern4.matcher(html);
html = matcher4.replaceAll(" ");
Matcher matcher5 = pattern5.matcher(html);
html = matcher5.replaceAll(" ");
return html;
}
/** 生成序号 */
public static String getRedPagerNo(String str) {
String no = Utility.formatDate(new Date());
no = no.replaceAll("-", "");
no = no.replaceAll(":", "");
no = no.replaceAll(" ", "");
String sRand = "";
for (int i = 0; i < 5; i++) {
String rand = String.valueOf(randoms.nextInt(10));
sRand += rand;
}
return str + no + sRand;
}
/**
* 把汉字转换为拼音
*
* @param input
* @return
*/
public static String toPinyin(String input) {
StringBuilder sb = new StringBuilder();
HanyuPinyinOutputFormat PINYIN_FORMAT = new HanyuPinyinOutputFormat();
PINYIN_FORMAT.setToneType(HanyuPinyinToneType.WITHOUT_TONE);
PINYIN_FORMAT.setVCharType(HanyuPinyinVCharType.WITH_V);
for (int i = 0; i < input.length(); i++) {
char c = input.charAt(i);
if (c <= 255) {
sb.append(c);
} else {
String pinyin = null;
try {
String[] pinyinArray = PinyinHelper
.toHanyuPinyinStringArray(c, PINYIN_FORMAT);
pinyin = pinyinArray[0];
} catch (BadHanyuPinyinOutputFormatCombination e) {
e.printStackTrace();
} catch (NullPointerException e) {
// 如果是日文,可能抛出该异常
e.printStackTrace();
}
if (pinyin != null) {
sb.append(pinyin);
sb.append(" ");
}
}
}
return sb.toString();
}
public static Long dateToLong(Date date) {
String strDate = formatDate(date);
strDate = strDate.replaceAll("-", "");
strDate = strDate.replaceAll(":", "");
strDate = strDate.replaceAll(" ", "");
return Long.valueOf(strDate);
}
public static void main(String[] arg) {
System.out.println(Utility.wipescript("<script>var d = 0;</script>"));
}
}
上一篇: java分页拦截类实现sql自动分页
推荐阅读
-
常用类型转换 博客分类: Util javadatepinyinStringNumber
-
xml类型的字符串转换为Dom对象 博客分类: JavaEE StringxmlDom解析dom4j
-
redis常用命令以及数据类型 博客分类: redis redis
-
Java util之常用数据类型特性盘点 博客分类: 技术及貌似 Java数据结构IDEA软件测试Blog
-
Java中常见的基本类型转换 博客分类: Java Notes
-
Java中常见的基本类型转换 博客分类: Java Notes
-
隐式转换:比动态类型更强大? 博客分类: 编程技术 ScalaRubyCC#C++
-
隐式转换:比动态类型更强大? 博客分类: 编程技术 ScalaRubyCC#C++
-
Spring自动类型转换 博客分类: Spring基础 spring类型转换
-
AJAX $.toJSON的用法或把数组转换成json类型 博客分类: JQueryJavaScriptASP.net c#ajaxjquery