package com.cdc;
import Java.util.*;
import java.io.*;
/**
* 常用基础函数(包括合并数组,拆分字串到数组,生成随机数,替换字符串中的子字符串,获取当前时间),将HASHTABLE内容转入数组
* 创建日期:(2001-7-19 17:22:33)
* @author:刘晓东
*/
public class Util {
/**
* 拼合数组。
* 创建日期:(2001-8-13 17:08:26)
* @return java.lang.String
* @param param java.lang.String
*/
public String join_array(String[] param,String spilt) {
String rentunstring;
StringBuffer tempstr = new StringBuffer();
int len = param.length;
for (int i = 0 ; i<len-1;i++ )
{
tempstr.append(param[i]);
tempstr.append(spilt);
}
tempstr.append(param[len-1]);
rentunstring = tempstr.toString();
return rentunstring;
}
/**
* 产生在start和end之间的num个随机整数,返回值存在Hashtable中。
* 创建日期:(2001-7-30 8:50:23)
* @return java.util.Hashtable
* @param start int 起始点
* @param end int 结束点
* @param num int 生成个数
*/
public Hashtable random(int start, int end, int num)
{
Hashtable randomHash = new Hashtable();
for (int i = 0; i < num; i++)
{
double sru = Math.random() * end;
int tag = Math.round((float) sru);
if (tag < start)
{
i--;
} else
{
randomHash.put(new Integer(i), new Integer(tag));
}
}
return randomHash;
}
/**
* 替换字符串中的子字符串
* 创建日期:(2001-10-10 13:50:21)
* @return java.lang.String
* @param param java.lang.String 原字符串
* @param param1 java.lang.String 需要替换的子字符串
* @param param2 java.lang.String 将被替换成的子字符串
* @exception java.lang.Exception 异常说明。
*/
public String replaceString(
String param,
String param1,
String param2)
throws java.lang.Exception {
String returnString = "";
try
{
if (param != null
&& param1 != null
&& param2 != null
&& !param.equalsIgnoreCase("")
&& !param1.equalsIgnoreCase("")
&& !param2.equalsIgnoreCase(""))
{
int intLen = param.length(); //原字符串长度
int intLenSrc = param1.length(); //需要替换的子字符串长度
int intPoint = 0; //当前位置
while (intPoint < param.length())
{
if ((intPoint + intLenSrc) <= param.length() && intPoint<param.length())
{
String compareString =
param.substring(intPoint, intPoint + intLenSrc);
if (compareString.equalsIgnoreCase(param1))
{
returnString = returnString + param2;
intPoint = intPoint + param1.length();
}
else
{
returnString = returnString + param.charAt(intPoint);
intPoint++;
}
}
else if ((intPoint + intLenSrc) > param.length() && intPoint<param.length())
{
returnString = returnString + param.charAt(intPoint);
intPoint++;
}
else if ((intPoint + intLenSrc) > param.length())
{
break;
}
}
}
}
catch (java.lang.Exception ex)
{
return ex.toString();
}
return returnString;
}
/**
* 此处插入方法说明
* 拆分字串到数组,分割符请使用,.等,不能使用中文符号作为分割符号,返回Hashtable
* 创建日期:(2001-7-10 14:50:31)
* @param fieldsru java.lang.String 输入参数:待拆分字符串
* @param tag java.lang.String 输入参数:分割符
* 返回Hashtable
* @exception java.lang.Exception 异常说明。
* @exception java.io.IOException 异常说明。
*/
public Hashtable spilt(String fieldsru, String tag)
{
Hashtable returnarray = new Hashtable();
char dot = tag.charAt(0);
String field;
field = fieldsru + dot;
int num = 0;
int field_len = field.length();
for (int i = 0; i < field_len; i++)
{
if (field.charAt(i) == dot)
{
num++;
}
}
int begin = 0;
int end;
for (int j = 0; j < num; j++)
{
end = field.indexOf(dot, begin);
returnarray.put(new Integer(j), field.substring(begin, end));
begin = end + 1;
}
return returnarray;
}
/**
* 拆分字串到数组,分割符请使用,.等,不能使用中文符号作为分割符号,返回String[]
* 创建日期:(2001-7-10 14:50:31)
* @param fieldsru java.lang.String 输入参数:待拆分字符串
* @param tag java.lang.String 输入参数:分割符
* 返回String[]
* @exception java.lang.Exception 异常说明。
* @exception java.io.IOException 异常说明。
*/
public String[] spilt_str(String fieldsru, String tag)
{
//Hashtable returnarray = new Hashtable();
char dot = tag.charAt(0);
String field;
field = fieldsru + dot;
int num = 0;
int field_len = field.length();
for (int i = 0; i < field_len; i++)
{
if (field.charAt(i) == dot)
{
num++;
}
}
String[] returnarray = new String[num];
int begin = 0;
int end;
for (int j = 0; j < num; j++)
{
end = field.indexOf(dot, begin);
returnarray[j] = field.substring(begin, end);
//returnarray.put(new Integer(j), field.substring(begin, end));
begin = end + 1;
}
return returnarray;
}
/**
* 拆分字串到数组,分割符可使用多个字符或者中文
* 创建日期:(2001-7-10 14:50:31)
* @param fieldsru java.lang.String 输入参数:待拆分字符串
* @param tag java.lang.String 输入参数:分割符
* @exception java.lang.Exception 异常说明。
* @exception java.io.IOException 异常说明。
*/
public String[] SplitString(String fieldsru, String tag)
{
try
{
int dot_len = tag.length(); //获得分割符的长度
int str_len = fieldsru.length(); //字符串长度
String tempStr = fieldsru + tag;
int num = 0;
for (int i = 0; i < str_len; i++)
{
int point = i + dot_len;
if (point < str_len)
{
String temp = fieldsru.substring(i, point);
if (temp.equalsIgnoreCase(tag))
{
num++;
}
}
}
num = num + 1;
String[] returnarray = new String[num];
int begin = 0;
int end = fieldsru.indexOf(tag);
for (int i = 0; i < num; i++)
{
end = tempStr.indexOf(tag, begin);
returnarray[i] = tempStr.substring(begin, end);
begin = end + dot_len;
}
return returnarray;
}
catch (java.lang.Exception e)
{
System.out.println(e.getMessage());
}
return null;
}
/**
* 获取当前时间()时间格式 (mm/dd/yyyy hh:mm:ss pm)参数为时区
* 创建日期:(2001-10-22 10:11:48)
* @return java.lang.String
* @exception java.lang.Exception 异常说明。
*/
public String gettime(int time_zone) throws java.lang.Exception {
String nowtime = "";
try
{
if (time_zone > 0)
{
time_zone = time_zone - 1;
}
else if (time_zone < 0)
{
time_zone = time_zone + 1;
}
String[] ids = TimeZone.getAvailableIDs(time_zone * 60 * 60 * 1000);
SimpleTimeZone pdt =
new SimpleTimeZone(time_zone * 60 * 60 * 1000, ids[0]);
pdt.setStartRule(
Calendar.APRIL,
1,
Calendar.SUNDAY,
2 * 60 * 60 * 1000);
pdt.setEndRule(
Calendar.OCTOBER,
-1,
Calendar.SUNDAY,
2 * 60 * 60 * 1000);
Calendar calendar = new GregorianCalendar(pdt);
Date trialTime = new Date();
calendar.setTime(trialTime);
String now_year = new Integer(calendar.get(Calendar.YEAR)).toString();
String now_month =
new Integer(calendar.get(Calendar.MONTH) + 1).toString();
if (now_month.length() == 1)
{
now_month = "0" + now_month;
}
String now_date = new Integer(calendar.get(Calendar.DATE)).toString();
if (now_date.length() == 1)
{
now_date = "0" + now_date;
}
int am_pm = calendar.get(Calendar.AM_PM);
String now_hour = new Integer(calendar.get(Calendar.HOUR)).toString();
if (am_pm == 1)
{
int intnow_hour = Integer.parseInt(now_hour) + 12;
now_hour = (new Integer(intnow_hour)).toString();
}
else
{
}
if (now_hour.length() == 1)
{
now_hour = "0" + now_hour;
}
String now_MINUTE =
new Integer(calendar.get(Calendar.MINUTE)).toString();
if (now_MINUTE.length() == 1)
{
now_MINUTE = "0" + now_MINUTE;
}
String now_SECOND =
new Integer(calendar.get(Calendar.SECOND)).toString();
if (now_SECOND.length() == 1)
{
now_SECOND = "0" + now_SECOND;
}
String str_AMPM = "";
//判定上午还是下午
if (am_pm == 0)
{
str_AMPM = "AM";
}
else if (am_pm == 1)
{
str_AMPM = "PM";
}
nowtime =
now_month
+ "/"
+ now_date
+ "/"
+ now_year
+ " "
+ now_hour
+ ":"
+ now_MINUTE
+ ":"
+ now_SECOND
+ " "
+ str_AMPM;
}
catch (Exception ex)
{
nowtime = ex.getMessage();
}
return nowtime;
}
/**
* 将HASHTABLE内容转入数组
* 创建日期:(2001-10-29 8:58:54)
* @return java.lang.String
* @param param java.util.Hashtable
* @exception java.lang.Exception 异常说明。
*/
public String[] hashToArray(Hashtable param)
throws java.lang.Exception {
if (param.size() == 0)
{
return null;
}
String[] return_array = new String[param.size()];
try
{
int param_size = param.size();
Enumeration enumKeys = param.keys(); //将hashtable转换为枚举类型
for (int i = 0; enumKeys.hasMoreElements(); i++)
{
Object temp = enumKeys.nextElement();
return_array[i] = (String) param.get(temp);
}
}
catch (Exception ex)
{
return_array[0] = ex.getMessage();
}
return return_array;
}
}