<strong style="background-color: rgb(255, 0, 0);">常用字符串工具类</strong>
/**
* 文字处理,上传工具 字符匹配,MD5加密算法 doget通过链接获取网络数据
**/
public class StrUtil {
public int CheckUpdate() {
int UpdateType = 0;
return UpdateType;
}
/**
* 判断输入的字符串参数是否为空
* @return boolean 空则返回true,非空则flase
*/
public static boolean isEmpty(String input) {
return null==input || 0==input.length() || 0==input.replaceAll("\\s", "").length();
}
/**
* 判断输入的字节数组是否为空
* @return boolean 空则返回true,非空则flase
*/
public static boolean isEmpty(byte[] bytes){
return null==bytes || 0==bytes.length;
}
/**
* 金额元转分
* @see 注意:该方法可处理贰仟万以内的金额,且若有小数位,则不限小数位的长度
* @see 注意:如果你的金额达到了贰仟万以上,则不推荐使用该方法,否则计算出来的结果会令人大吃一惊
* @param amount 金额的元进制字符串
* @return String 金额的分进制字符串
*/
public static String moneyYuanToFen(String amount){
if(isEmpty(amount)){
return amount;
}
//传入的金额字符串代表的是一个整数
if(-1 == amount.indexOf(".")){
return Integer.parseInt(amount) * 100 + "";
}
//传入的金额字符串里面含小数点-->取小数点前面的字符串,并将之转换成单位为分的整数表示
int money_fen = Integer.parseInt(amount.substring(0, amount.indexOf("."))) * 100;
//取到小数点后面的字符串
String pointBehind = (amount.substring(amount.indexOf(".") + 1));
//amount=12.3
if(pointBehind.length() == 1){
return money_fen + Integer.parseInt(pointBehind)*10 + "";
}
//小数点后面的第一位字符串的整数表示
int pointString_1 = Integer.parseInt(pointBehind.substring(0, 1));
//小数点后面的第二位字符串的整数表示
int pointString_2 = Integer.parseInt(pointBehind.substring(1, 2));
//amount==12.03,amount=12.00,amount=12.30
if(pointString_1 == 0){
return money_fen + pointString_2 + "";
}else{
return money_fen + pointString_1*10 + pointString_2 + "";
}
}
/**
* 字节数组转为字符串
* @see 该方法默认以ISO-8859-1转码
* @see 若想自己指定字符集,可以使用<code>getString(byte[] data, String charset)</code>方法
*/
public static String getString(byte[] data){
String str="";
try {
str = new String(data, "ISO-8859-1");
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return str;
}
/**
* HTML字符转义
* @see 对输入参数中的敏感字符进行过滤替换,防止用户利用JavaScript等方式输入恶意代码
* @see String input = <img src='http://t1.baidu.com/it/fm=0&gp=0.jpg'/>
* @see HtmlUtils.htmlEscape(input); //from spring.jar
* @see StringEscapeUtils.escapeHtml(input); //from commons-lang.jar
* @see 尽管Spring和Apache都提供了字符转义的方法,但Apache的StringEscapeUtils功能要更强大一些
* @see StringEscapeUtils提供了对HTML,Java,JavaScript,SQL,XML等字符的转义和反转义
* @see 但二者在转义HTML字符时,都不会对单引号和空格进行转义,而本方法则提供了对它们的转义
* @return String 过滤后的字符串
*/
public static String htmlEscape(String input) {
if(isEmpty(input)){
return input;
}
input = input.replaceAll("&", "&");
input = input.replaceAll("<", "<");
input = input.replaceAll(">", ">");
input = input.replaceAll(" ", " ");
input = input.replaceAll("'", "'"); //IE暂不支持单引号的实体名称,而支持单引号的实体编号,故单引号转义成实体编号,其它字符转义成实体名称
input = input.replaceAll("\"", """); //双引号也需要转义,所以加一个斜线对其进行转义
input = input.replaceAll("\n", "<br/>"); //不能把\n的过滤放在前面,因为还要对<和>过滤,这样就会导致<br/>失效了
return input;
}
// 返回对应的时间字符串
public static String getStrByDate(Date date) {
String str = "";
SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日'T'HH:mm:ss");
str = sdf.format(date);
return str;
}
// 匹配输入数据类型
public static boolean matchCheck(String ins, int type) {
String pat = "";
switch (type) {
case 0: // /手机号
pat = "^1[3-8][0-9]{9}$";
break;
case 1:// /邮箱
pat = "^[a-zA-Z0-9][\\w\\.-]*[a-zA-Z0-9]@[a-zA-Z0-9][\\w\\.-]*[a-zA-Z0-9]\\.[a-zA-Z][a-zA-Z\\.]*[a-zA-Z]$";
break;
case 2: // /用户名
pat = "^[0-9a-zA-Z]{4,12}$";
break;
case 3: // /密码
pat = "^[\\s\\S]{6,18}$";
break;
case 4: // /中文
pat = "^[0-9a-z\u4e00-\u9fa5|admin]{2,15}$";
break;
}
Pattern p = Pattern.compile(pat);
Matcher m = p.matcher(ins);
return m.matches();
}
/*
* public static Boolean CheckNetwork(Context cont, String tips) { try{
* ConnectivityManager
* cwjManager=(ConnectivityManager)cont.getSystemService(
* cont.CONNECTIVITY_SERVICE); NetworkInfo info =
* cwjManager.getActiveNetworkInfo(); if (info == null &&
* !info.isAvailable()){ if(tips!=null&&!tips.equals("")) {
* Toast.makeText(cont,tips,Toast.LENGTH_LONG).show(); } return false; } }
* catch(Exception e) {
*
* Toast.makeText(cont,tips,Toast.LENGTH_LONG).show(); return false; }
*
* return true; }
*/
public String md5(String input) {
String res = "";
try {
MessageDigest algorithm = MessageDigest.getInstance("MD5");
algorithm.reset();
algorithm.update(input.getBytes());
byte[] md5 = algorithm.digest();
String tmp = "";
for (int i = 0; i < md5.length; i++) {
tmp = (Integer.toHexString(0xFF & md5[i]));
if (tmp.length() == 1) {
res += "0" + tmp;
} else {
res += tmp;
}
}
} catch (NoSuchAlgorithmException ex) {
}
return res;
}
// 方法测试
public static void main(String[] args) {
// try {
// System.out.println(doGet("http://www.baidu.com"));
// } catch (Exception e) {
// // TODO Auto-generated catch block
// e.printStackTrace();
// }
System.out.println(getStrByDate(new Date()));
}
}