字符串处理工具类

来源:互联网 发布:组卷 源码 编辑:程序博客网 时间:2024/05/22 15:21

package net.oschina.app.common;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.regex.Pattern;

/**
 * 字符串操作工具包
 * @ Bert Guo
 */
public class StringUtils
{
 private final static Pattern emailer = Pattern.compile("\\w+([-+.]\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*");
 private final static SimpleDateFormat dateFormater = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
 private final static SimpleDateFormat dateFormater2 = new SimpleDateFormat("yyyy-MM-dd");
 
 /**
  * 将字符串转位日期类型
  * @param sdate
  * @return
  */
 public static Date toDate(String sdate) {
  try {
   return dateFormater.parse(sdate);
  } catch (ParseException e) {
   return null;
  }
 }
 
 /**
  * 以友好的方式显示时间
  * @param sdate
  * @return
  */
 public static String friendly_time(String sdate) {
  Date time = toDate(sdate);
  if(time == null) {
   return "Unknown";
  }
  String ftime = "";
  Calendar cal = Calendar.getInstance();
  
  //判断是否是同一天
  String curDate = dateFormater2.format(cal.getTime());
  String paramDate = dateFormater2.format(time);
  if(curDate.equals(paramDate)){
   int hour = (int)((cal.getTimeInMillis() - time.getTime())/3600000);
   if(hour == 0)
    ftime = Math.max((cal.getTimeInMillis() - time.getTime()) / 60000,1)+"分钟前";
   else
    ftime = hour+"小时前";
   return ftime;
  }
  
  long lt = time.getTime()/86400000;
  long ct = cal.getTimeInMillis()/86400000;
  int days = (int)(ct - lt);  
  if(days == 0){
   int hour = (int)((cal.getTimeInMillis() - time.getTime())/3600000);
   if(hour == 0)
    ftime = Math.max((cal.getTimeInMillis() - time.getTime()) / 60000,1)+"分钟前";
   else
    ftime = hour+"小时前";
  }
  else if(days == 1){
   ftime = "昨天";
  }
  else if(days == 2){
   ftime = "前天";
  }
  else if(days > 2 && days <= 10){
   ftime = days+"天前";   
  }
  else if(days > 10){   
   ftime = dateFormater2.format(time);
  }
  return ftime;
 }
 
 /**
  * 判断给定字符串时间是否为今日
  * @param sdate
  * @return boolean
  */
 public static boolean isToday(String sdate){
  boolean b = false;
  Date time = toDate(sdate);
  Date today = new Date();
  if(time != null){
   String nowDate = dateFormater2.format(today);
   String timeDate = dateFormater2.format(time);
   if(nowDate.equals(timeDate)){
    b = true;
   }
  }
  return b;
 }
 
 /**
  * 判断给定字符串是否空白串。
  * 空白串是指由空格、制表符、回车符、换行符组成的字符串
  * 若输入字符串为null或空字符串,返回true
  * @param input
  * @return boolean
  */
 public static boolean isEmpty( String input )
 {
  if ( input == null || "".equals( input ) )
   return true;
  
  for ( int i = 0; i < input.length(); i++ )
  {
   char c = input.charAt( i );
   if ( c != ' ' && c != '\t' && c != '\r' && c != '\n' )
   {
    return false;
   }
  }
  return true;
 }

 /**
  * 判断是不是一个合法的电子邮件地址
  * @param email
  * @return
  */
 public static boolean isEmail(String email){
  if(email == null || email.trim().length()==0)
   return false;
     return emailer.matcher(email).matches();
 }
 /**
  * 字符串转整数
  * @param str
  * @param defValue
  * @return
  */
 public static int toInt(String str, int defValue) {
  try{
   return Integer.parseInt(str);
  }catch(Exception e){}
  return defValue;
 }
 /**
  * 对象转整数
  * @param obj
  * @return 转换异常返回 0
  */
 public static int toInt(Object obj) {
  if(obj==null) return 0;
  return toInt(obj.toString(),0);
 }
 /**
  * 对象转整数
  * @param obj
  * @return 转换异常返回 0
  */
 public static long toLong(String obj) {
  try{
   return Long.parseLong(obj);
  }catch(Exception e){}
  return 0;
 }
 /**
  * 字符串转布尔值
  * @param b
  * @return 转换异常返回 false
  */
 public static boolean toBool(String b) {
  try{
   return Boolean.parseBoolean(b);
  }catch(Exception e){}
  return false;
 }
}

后面会继续往代码里进行增加,暂时先写这么多吧.遇到不懂的可以QQ 468903507 .

原创粉丝点击