首页 | 编程语言 | 网站建设 | 游戏天堂 | 冲浪宝典 | 网络安全 | 操作系统 | 软件时空 | 硬件指南 | 病毒相关 | IT 认证
软讯网络 > 编程语言 > Java > 发两个实用的类
【标  题】:发两个实用的类
【关键字】:
【来  源】:http://www.cublog.cn/u/8718/showart.php?id=96537

发两个实用的类

字符串处理的类
 
package cn.hfhs.common.tools;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
//字符替换
public class StringBean {
 /**
  * 全文替换
  *
  * @param strSource
  *            源字符串
  * @param strFrom
  *            被替换字符
  * @param strTo
  *            替换字符
  * @return 替换完成的字符串
  */
 public static String strReplace(String strSource, String strFrom,
   String strTo) {
  java.lang.String strDest = "";
  int intFromLen = strFrom.length();
  int intPos;
  while ((intPos = strSource.indexOf(strFrom)) != -1) {
   strDest = strDest + strSource.substring(0, intPos);
   strDest = strDest + strTo;
   strSource = strSource.substring(intPos + intFromLen);
  }
  strDest = strDest + strSource;
  return strDest;
 }
 /**
  * 分割字串
  *
  * @param source
  *            原始字符
  * @param div
  *            分割符
  * @return 字符串数组
  */
 public static String[] split(String source, String div) {
  int arynum = 0, intIdx = 0, intIdex = 0, div_length = div.length();
  if (source.compareTo("") != 0) {
   if (source.indexOf(div) != -1) {
    intIdx = source.indexOf(div);
    for (int intCount = 1;; intCount++) {
     if (source.indexOf(div, intIdx + div_length) != -1) {
      intIdx = source.indexOf(div, intIdx + div_length);
      arynum = intCount;
     } else {
      arynum += 2;
      break;
     }
    }
   } else {
    arynum = 1;
   }
  } else {
   arynum = 0;
  }
  intIdx = 0;
  intIdex = 0;
  String[] returnStr = new String[arynum];
  if (source.compareTo("") != 0) {
   if (source.indexOf(div) != -1) {
    intIdx = (int) source.indexOf(div);
    returnStr[0] = (String) source.substring(0, intIdx);
    for (int intCount = 1;; intCount++) {
     if (source.indexOf(div, intIdx + div_length) != -1) {
      intIdex = (int) source
        .indexOf(div, intIdx + div_length);
      returnStr[intCount] = (String) source.substring(intIdx
        + div_length, intIdex);
      intIdx = (int) source.indexOf(div, intIdx + div_length);
     } else {
      returnStr[intCount] = (String) source.substring(intIdx
        + div_length, source.length());
      break;
     }
    }
   } else {
    returnStr[0] = (String) source.substring(0, source.length());
    return returnStr;
   }
  } else {
   return returnStr;
  }
  return returnStr;
 }
 /**
  * 正则表达式全文替换
  *
  * @param strFrom
  *            被替换字符
  * @param strTo
  *            替换字符
  * @param regEx
  *            正则表达式
  * @return 替换完成的字符串
  */
 public static String regReplace(String strFrom, String strTo, String regEx) {
  Pattern p = Pattern.compile(regEx);
  Matcher m = p.matcher(strFrom);
  String s = m.replaceAll(strTo);
  return s;
 }
 /**
  * 正则表达式首次替换
  *
  * @param regEx
  *            正则表达式
  * @param srcStr
  *            被替换字符
  * @param repStr
  *            替换字符
  * @return 替换完成的字符串
  */
 public static String regReplaceFirst(String regEx, String srcStr,
   String repStr) {
  Pattern p = Pattern.compile(regEx);
  Matcher m = p.matcher(srcStr);
  String s = m.replaceFirst(repStr);
  return s;
 }
 /**
  * 正则表达式查找
  *
  * @param srcStr
  *            被查字符串
  * @param regEx
  *            正则表达式
  * @param s
  *            目标字符串
  * @return 布尔类型
  */
 public static boolean regFind(String srcStr, String regEx, int s) {
  boolean result = Pattern.compile(regEx).matcher(srcStr).find(s);
  return result;
 }
 /**
  * 处理NULL
  * @param str
  * @return
  */
 public static String dealNull(String str) {
  String returnStr = null;
  if (str == null) {
   returnStr = "";
  } else {
   returnStr = str;
  }
  return returnStr;
 }
 
 /**
  * 处理NULL
  * @param str
  * @return
  */
 public static Object dealNull(Object obj) {
  Object returnStr = null;
  if (obj == null) {
   returnStr = (Object) ("");
  } else {
   returnStr = obj;
  }
  return returnStr;
 }
 
 /*
  * HTML格式化
  */
 public static String htmlFormat(String in) {
  StringBuffer out = new StringBuffer();
  for (int i = 0; in != null && i < in.length(); i++) {
   char c = in.charAt(i);
   if (c == '\'')
    out.append("&#039;");
   else if (c == '\"')
    out.append("&quot;");
   else if (c == '<')
    out.append("&lt;");
   else if (c == '>')
    out.append("&gt;");
   else if (c == '&')
    out.append("&amp;");
   else
    out.append(c);
  }
  return out.toString();
 }
 /*
  * 还原HTML格式化:适合在文本区域中显示完全正确的数据
  */
 public static String resetHtmlFormat(String srcString) {
  srcString=StringBean.strReplace(srcString,"&#039;","'");
  srcString=StringBean.strReplace(srcString,"&quot;","\"");
  srcString=StringBean.strReplace(srcString,"&lt;","<");
  srcString=StringBean.strReplace(srcString,"&gt;",">");
  srcString=StringBean.strReplace(srcString,"&amp;","&");
  return srcString;
 }
 
 public static void main(String args[]){
  String str="A12345";
  String str2="皖A-12345";
  System.out.println(regFind(str,"^[A-Z]{1}[0-9]{5}$",0));
  System.out.print(regFind(str2,"^[\\W]{1}[A-Z]{1}-[0-9]{5}$",0));
 }
 
}
 
 
时间处理的类
package cn.hfhs.common.tools;
import java.util.*;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import cn.hfhs.common.tools.*;
public class DateBean {
 /**
  * 时间格式: 20050601081202
  */
 public static String nowNumStr() {
  Calendar now = Calendar.getInstance();
  String yyyy = String.valueOf(now.get(Calendar.YEAR));
  String mm = String.valueOf(now.get(Calendar.MONTH) + 1);
  String dd = String.valueOf(now.get(Calendar.DAY_OF_MONTH));
  String hh = String.valueOf(now.get(Calendar.HOUR_OF_DAY));
  String ii = String.valueOf(now.get(Calendar.MINUTE));
  String ss = String.valueOf(now.get(Calendar.SECOND));
  mm = (1 == mm.length()) ? ("0" + mm) : mm;
  dd = (1 == dd.length()) ? ("0" + dd) : dd;
  hh = (1 == hh.length()) ? ("0" + hh) : hh;
  ii = (1 == ii.length()) ? ("0" + ii) : ii;
  ss = (1 == ss.length()) ? ("0" + ss) : ss;
  String timeStr = yyyy + mm + dd + hh + ii + ss;
  return timeStr;
 }
 /**
  * 时间格式:2005-01-20
  */
 public static String ymdStr() {
  Calendar now = Calendar.getInstance();
  String yyyy = String.valueOf(now.get(Calendar.YEAR));
  String mm = String.valueOf(now.get(Calendar.MONTH) + 1);
  String dd = String.valueOf(now.get(Calendar.DAY_OF_MONTH));
  mm = (1 == mm.length()) ? ("0" + mm) : mm;
  dd = (1 == dd.length()) ? ("0" + dd) : dd;
  return yyyy + "-" + mm + "-" + dd;
 }
 /**
  * 时间格式:08:12:45
  */
 public static String hisStr() {
  Calendar now = Calendar.getInstance();
  String hh = String.valueOf(now.get(Calendar.HOUR_OF_DAY));
  String ii = String.valueOf(now.get(Calendar.MINUTE));
  String ss = String.valueOf(now.get(Calendar.SECOND));
  hh = (1 == hh.length()) ? ("0" + hh) : hh;
  ii = (1 == ii.length()) ? ("0" + ii) : ii;
  ss = (1 == ss.length()) ? ("0" + ss) : ss;
  return hh + ":" + ii + ":" + ss;
 }
 /**
  * 时间格式: 2005-01-23 08:12:45
  *
  * @return
  */
 public static String nowTimeStr() {
  return ymdStr() + " " + hisStr();
 }
 /**
  * 获取年 2006
  */
 public static String yyyyStr() {
  Calendar now = Calendar.getInstance();
  now = Calendar.getInstance();
  String yyyy = String.valueOf(now.get(Calendar.YEAR));
  return yyyy;
 }
 /**
  * 获取月 06
  */
 public static String mmStr() {
  Calendar now = Calendar.getInstance();
  String mm = String.valueOf(now.get(Calendar.MONTH) + 1);
  mm = (1 == mm.length()) ? ("0" + mm) : mm;
  return mm;
 }
 /**
  * 获取日
  */
 public static String ddStr() {
  Calendar now = Calendar.getInstance();
  String dd = String.valueOf(now.get(Calendar.DAY_OF_MONTH));
  dd = (1 == dd.length()) ? ("0" + dd) : dd;
  return dd;
 }
 /**
  * 格式化SQL日期
  */
 public static String format(String pattern, java.sql.Date date) {
  return new java.text.SimpleDateFormat(pattern).format(date);
 }
 /**
  * 格式化JAVA日期
  */
 public static String format(String pattern, java.util.Date date) {
  return new java.text.SimpleDateFormat(pattern).format(date);
 }
 /**
  * 在当前日期加或减多少天得到新日期
  *
  * @param i
  *            增加的天数
  * @param operator:+ -
  * @return 新日期
  */
 public static String strToDateByInt(int i, String operator, String df) {
  Date d = new Date();
  GregorianCalendar gc = new GregorianCalendar();
  gc.setTime(d);
  if ("+".equals(operator)) {
   gc.add(GregorianCalendar.DATE, i);
  } else if ("-".equals(operator)) {
   gc.add(GregorianCalendar.DATE, (-i));
  }
  Date now = gc.getTime();
  if (df.equals(""))
   df = "yyyy-MM-dd hh:mm:ss"; // 默认输出时间格式
  SimpleDateFormat sdf = new SimpleDateFormat(df);
  return sdf.format(now);
 }
 /**
  * 计算某年某月有多少天
  *
  * @param year
  * @param month
  * @return
  */
 public static int daysInMonth(int year, int month) {
  if (month <= 0 || month > 12) {
   System.out.println("非法参数:month");
   return -1;
  }
  int days = 31;
  if (month == 4 || month == 6 || month == 9 || month == 11) {
   days = 30;
  }
  if (month == 2) {
   if ((year % 4 == 0) && (year % 100 != 0) || (year % 400 == 0)) {
    days = 29;
   } else {
    days = 28;
   }
  }
  return days;
 }
 /**
  * 取得下个月
  *
  */
 public static void getNextMonth() {
  try {
   Calendar cl = Calendar.getInstance();
   SimpleDateFormat sdf = new SimpleDateFormat("yyyyMM");
   cl.setTime(sdf.parse("200601"));
   // cl.add(cl.MONTH, 1);
   System.out.print(cl.get(cl.MONTH + 1));//
  } catch (Exception e) {
   e.printStackTrace();
  }
 }
 /**
  * 计算两个日期之间的月差
  */
 public static int dispersionMonth2(String strDate1, String strDate2) {
  int iMonth = 0;
  int flag = 0;
  try {
   Calendar objCalendarDate1 = Calendar.getInstance();
   objCalendarDate1.setTime(DateFormat.getDateInstance().parse(
     strDate1));
   Calendar objCalendarDate2 = Calendar.getInstance();
   objCalendarDate2.setTime(DateFormat.getDateInstance().parse(
     strDate2));
   if (objCalendarDate2.equals(objCalendarDate1))
    return 0;
   if (objCalendarDate1.after(objCalendarDate2)) {
    Calendar temp = objCalendarDate1;
    objCalendarDate1 = objCalendarDate2;
    objCalendarDate2 = temp;
   }
   if (objCalendarDate2.get(Calendar.DAY_OF_MONTH) < objCalendarDate1
     .get(Calendar.DAY_OF_MONTH))
    flag = 1;
   if (objCalendarDate2.get(Calendar.YEAR) > objCalendarDate1
     .get(Calendar.YEAR))
    iMonth = ((objCalendarDate2.get(Calendar.YEAR) - objCalendarDate1
      .get(Calendar.YEAR))
      * 12 + objCalendarDate2.get(Calendar.MONTH) - flag)
      - objCalendarDate1.get(Calendar.MONTH);
   else
    iMonth = objCalendarDate2.get(Calendar.MONTH)
      - objCalendarDate1.get(Calendar.MONTH) - flag;
  } catch (Exception e) {
  }
  return iMonth;
 }

 public static int dispersionDays2( String sEndDate, String sBeginDate)
   throws Exception {
  Calendar calendar1 = Calendar.getInstance();
  
  Calendar calendar2 = Calendar.getInstance();
  
  SimpleDateFormat formatter1 = new SimpleDateFormat("yyyy-MM-dd");// 格式很重要:是20051031,还是2005-10-31格式呢?
  if (sBeginDate.equals("0")) {
   System.out.println("sBirthDate.equals====0");
   sBeginDate = "19000101";
  }
  calendar1.setTime(formatter1.parse(sBeginDate));
  calendar2.setTime(formatter1.parse(sEndDate));
  return (int) ((calendar2.getTimeInMillis() - calendar1
    .getTimeInMillis()) / 1000 / 60 / 60 / 24);// 获取天数的差值。
 }
 public static void main(String args[]) {
  // System.out.println(strToDateByInt(1, "+", "yyyy-MM-dd hh:mm:ss"));
  // System.out.println(dispersionDays2("2006-04-07","2006-03-01"));
  // getNextMonth();
  
  try {
   System.out.println(dispersionDays2("2006-04-07","2006-03-01"
     ));
  } catch (Exception e) {
  }
 }
}

Tomcat中用web.xml控制Web应用详解:【上一篇】
针对 Web 服务调用框架的样例:【下一篇】
【相关文章】
没有相关文章
【随机文章】
  • LINUX下WINDOWS挂载
  • 查看和修改硬盘的LTG
  • 服务器性能测试典型工具介绍
  • 用Oracle数据表绑定DataGrid
  • UTF-8 and Unicode FAQ[转载]
  • 在PB中实现数据录入维持序号连续性的简单实现
  • 妙手回春:网吧经典故障排解技巧
  • IPSec基础-IPSec协议类型
  • ClubWEBSite starter kit二次开发及Vs2005中ObjectDataSource控件的应用小记
  • 自动本地化
  • 【相关评论】
    没有相关评论
    【发表评论】
    姓名:
    邮件:
    随机码*
    评论*
          
    |  首 页  |  版权声明  |  联系我们   |  网站地图  |
    CopyRight © 2004-2007 软讯网络 All Rigths Reserved.