import java.text.*;
import java.util.*;
/**
*
* <p>
* Title: 通用工具类
* </p>
* <p>
* Description: 常用工具的集合,用来处理常见问题,比如中文乱码的方法等。
* </p>
* <p>
* Copyright: Copyright (c) 2003
* </p>
* <p>
* Company: Towery
* </p>
*
* @author WangPinHeng
* @version 1.0
*/
public class Tools {
public Tools() {
//
}
/**
* 字符串替换,将 source 中的 oldString 全部换成 newString
*
* @param source
* 源字符串
* @param oldString
* 老的字符串
* @param newString
* 新的字符串
* @return 替换后的字符串
*/
private static String Replace(String source, String oldString,
String newString) {
StringBuffer output = new StringBuffer();
int lengthOfSource = source.length(); // 源字符串长度
int lengthOfOld = oldString.length(); // 老字符串长度
int posStart = 0; // 开始搜索位置
int pos; // 搜索到老字符串的位置
while ((pos = source.indexOf(oldString, posStart)) >= 0) {
output.append(source.substring(posStart, pos));
output.append(newString);
posStart = pos + lengthOfOld;
}
if (posStart < lengthOfSource) {
output.append(source.substring(posStart));
}
return output.toString();
}
/**
* 转换SQL中的特殊符号,比如将单引号"'"替换为"''",以免产生SQLException
*
* @param sqlstr
* 原SQL
* @return 处理后的SQL
*/
public static String toSql(String sqlstr) {
String strsql = sqlstr;
if (strsql == null) {
return "";
}
strsql = Replace(strsql, "'", "''");
return strsql;
}
/**
* 将ISO8859_1编码的字符串转化为GB2312编码的字符串,主要用来处理中文显示乱码的问题
*
* @param ISO8859_1str
* 通过ISO8859_1编码的字符串
* @return 通过GB2312编码的字符串
*/
public String GBString(String ISO8859_1str) {
if (ISO8859_1str == null) {
return "";
} else {
try {
return new String(ISO8859_1str.getBytes("ISO8859_1"), "GB2312");
} catch (Exception e) {
e.printStackTrace();
return null;
}
}
}
/**
* 将ISO8859_1编码的字符串转化为GB2312编码的字符串,主要用来处理中文显示乱码的问题
*
* @param ISO8859_1str
* 通过ISO8859_1编码的字符串
* @return 通过GB2312编码的字符串
*/
public static String GB2312FromISO8859_1(String ISO8859_1str) {
if (ISO8859_1str == null) {
return "";
} else {
try {
return new String(ISO8859_1str.getBytes("ISO8859_1"), "GB2312");
} catch (Exception e) {
e.printStackTrace();
return null;
}
}
}
public String trim1(String str) {
String str1 = "";
if (str.substring(0, 1).equals("?")) {
str1 = str.substring(1, str.length());
System.out.println("str1=" + str1);
} else {
str1 = str;
}
return str1.trim();
}
public String dateformat(String str) {
String day = str.substring(0, 2);
String month = str.substring(3, 5);
String year = str.substring(6, 10);
str = year + "-" + month + "-" + day;
return str;
}
public String tenformat(String str) {
if (str.length() == 8) {
String year = str.substring(0, 4);
String month = "0" + str.substring(5, 6);
String day = "0" + str.substring(7, 8);
str = year + "-" + month + "-" + day;
} else if (str.length() == 9) {
if (str.substring(6, 7).equals("-")) {
str = str.substring(0, 5) + "0" + str.substring(5, 9);
} else {
str = str.substring(0, 8) + "0" + str.substring(8, 9);
}
}
return str;
}
/**
* 计算两个时间
*
* @param str
* 原时间,strsub,需减少的时间
* @return 计算后的时间
*/
public String subTime(String str, String strSub) {
String rsTime = "";
int hour = 0;
int sec = 0;
int secsub = 0;
str = trim(str);
strSub = trim(strSub);
if (str.length() == 5) {
hour = Integer.parseInt(str.substring(0, 2));
sec = Integer.parseInt(str.substring(3, 5));
} else if (str.length() == 4) {
hour = Integer.parseInt(str.substring(0, 1));
sec = Integer.parseInt(str.substring(2, 4));
}
if (trim(strSub).length() == 5) {
secsub = Integer.parseInt(strSub.substring(0, 2));
} else if (trim(strSub).length() == 4) {
secsub = Integer.parseInt(strSub.substring(0, 1));
}
//int a = sec + secsub;
if (sec < secsub) {
//System.out.println("sub <");
String jstr = Integer.toString(sec + 60 - secsub);
String hstr = Integer.toString(hour - 1);
//System.out.println("jstr="+jstr);
//System.out.println("hstr="+hstr);
if (jstr.length() == 1) {
jstr = "0" + jstr;
}
if (hstr.length() == 1) {
hstr = "0" + hstr;
}
rsTime = hstr + ":" + jstr;
} else if (sec == secsub) {
//System.out.println("sub =");
String strh = Integer.toString(hour);
//System.out.println("strh="+strh);
if (strh.length() == 1) {
strh = "0" + strh;
}
rsTime = strh + ":00";
} else if (sec > secsub) {
//System.out.println("sub >");
String jstr = Integer.toString(sec - secsub);
//System.out.println("jstr="+jstr);
String hstr = Integer.toString(hour);
//System.out.println("hstr="+hstr);
if (jstr.length() == 1) {
jstr = "0" + jstr;
}
if (hstr.length() == 1) {
hstr = "0" + hstr;
}
rsTime = hstr + ":" + jstr;
}
return rsTime;
}
public String toSENDstr(String input) {
String r = input;
r = replace(r, "&", "");
r = replace(r, "/", "|");
r = replace(r, "\r", "");
r = replace(r, "\n", "");
r = replace(r, "'", "");
r = replace(r, " ", "");
return r;
}
public String replace(String str, String strOld, String strNew) {
String r = str;
if (str != null && strOld != null && strNew != null) {
int idx = str.indexOf(strOld);
if (idx != -1) {
String strPre = "";
r = "";
String strSuf = str;
for (; idx != -1; idx = strSuf.indexOf(strOld)) {
strPre = strSuf.substring(0, idx);
strSuf = strSuf.substring(idx + strOld.length());
r = r + strPre + strNew;
}
r = r + strSuf;
}
}
return r;
}
/**
* 计算两个时间相差的分钟数
*
* @param time1
* string,time2,string
* @return string
*/
public String diffTime(String time1, String time2) {
String rsTime = "";
int hour = 0;
int hour2 = 0;
int sec = 0;
int sec2 = 0;
String str1 = trim(time1);
String str2 = trim(time2);
if (str1.length() == 5) {
hour = Integer.parseInt(str1.substring(0, 2));
sec = Integer.parseInt(str1.substring(3, 5));
} else if (str1.length() == 4) {
hour = Integer.parseInt(str1.substring(0, 1));
sec = Integer.parseInt(str1.substring(2, 4));
}
if (str2.length() == 5) {
hour2 = Integer.parseInt(str2.substring(0, 2));
sec2 = Integer.parseInt(str2.substring(3, 5));
} else if (str2.length() == 4) {
hour2 = Integer.parseInt(str2.substring(0, 1));
sec2 = Integer.parseInt(str2.substring(2, 4));
}
//int a = sec + secsub;
if (sec < sec2) {
//System.out.println("sub <");
String jstr = Integer.toString(sec + 60 - sec2);
if (jstr.length() == 1) {
jstr = "0" + jstr;
}
if ((hour - 1) != hour2) {
String hstr = Integer.toString(hour - 1 - hour2);
if (hstr.length() == 1) {
hstr = "0" + hstr;
}
rsTime = hstr + ":" + jstr + ":00";
} else {
rsTime = jstr + ":00";
}
} else if (sec == sec2) {
//System.out.println("sub =");
if (hour != hour2) {
String strh = Integer.toString(hour - hour2);
//System.out.println("strh="+strh);
if (strh.length() == 1) {
strh = "0" + strh;
}
rsTime = strh + ":00" + ":00";
} else {
rsTime = "00:00";
}
} else if (sec > sec2) {
//System.out.println("sub >");
String jstr = Integer.toString(sec - sec2);
//System.out.println("jstr="+jstr);
if (jstr.length() == 1) {
jstr = "0" + jstr;
}
if (hour != hour2) {
String hstr = Integer.toString(hour - hour2);
//System.out.println("hstr="+hstr);
if (hstr.length() == 1) {
hstr = "0" + hstr;
}
rsTime = hstr + ":" + jstr + ":00";
} else {
rsTime = jstr + ":00";
}
}
return rsTime;
}
/**
* 计算两个时间
*
* @param str
* 原时间,stradd,需增加的时间
* @return 计算后的时间
*/
public String addTime(String str, String stradd) {
String rsTime = "";
int hour = 0;
int sec = 0;
int secadd = 0;
int houradd = 0;
str = trim(str);
stradd = trim(stradd);
if (str.length() == 5) {
hour = Integer.parseInt(str.substring(0, 2));
sec = Integer.parseInt(str.substring(3, 5));
} else if (str.length() == 4) {
hour = Integer.parseInt(str.substring(0, 1));
sec = Integer.parseInt(str.substring(2, 4));
}
if (trim(stradd).length() == 5) {
secadd = Integer.parseInt(stradd.substring(0, 2));
} else if (trim(stradd).length() == 4) {
secadd = Integer.parseInt(stradd.substring(0, 1));
} else if (trim(stradd).length() == 7) {
houradd = Integer.parseInt(stradd.substring(0, 1));
secadd = Integer.parseInt(stradd.substring(2, 4));
}
int a = sec + secadd;
if (a < 60) {
String stra = Integer.toString(a);
String strh = Integer.toString(hour + houradd);
if (stra.length() == 1) {
stra = "0" + stra;
}
if (strh.length() == 1) {
strh = "0" + strh;
} else if (Integer.parseInt(strh) > 24) {
int h = Integer.parseInt(strh) / 24;
strh = Integer.toString(h);
if (h < 10) {
strh = "0" + Integer.toString(h);
}
}
rsTime = strh + ":" + stra;
} else if (a == 60) {
String strh = Integer.toString(hour + houradd + 1);
if (strh.length() == 1) {
strh = "0" + strh;
} else if (Integer.parseInt(strh) > 24) {
int h = Integer.parseInt(strh) / 24;
strh = Integer.toString(h);
if (h < 10) {
strh = "0" + Integer.toString(h);
}
}
rsTime = strh + ":00";
} else if (a > 60) {
int i = a / 60;
int j = a % 60;
String strj = Integer.toString(j);
if (strj.length() == 1) {
strj = "0" + strj;
}
String strh = Integer.toString(hour + houradd + i);
if (strh.length() == 1) {
strh = "0" + strh;
} else if (Integer.parseInt(strh) > 24) {
int h = Integer.parseInt(strh) / 24;
strh = Integer.toString(h);
if (h < 10) {
strh = "0" + Integer.toString(h);
}
}
rsTime = strh + ":" + strj;
if (j == 0) {
rsTime = strh + ":00";
}
}
return rsTime;
}
分享到:
相关推荐
Java常用工具类是Java开发中不可或缺的一部分,它们提供了一系列便捷的方法,帮助开发者高效地处理各种常见任务。在Java中,最著名的工具类库是`java.util`包,它包含了大量实用类,如集合、日期时间、数学计算、...
"Java常用工具类大全,工作5年精心整理.zip"这个压缩包文件很可能包含了一位有经验的Java开发者在五年工作中积累的各种实用工具类,这些工具类能够极大地提高开发效率,简化代码编写。以下是对可能包含的知识点进行...
在Java中,最知名的工具类库是`java.util`包,它包含了大量方便实用的类。下面将详细讨论Java工具类中的关键知识点。 1. **集合框架**: `java.util`包下的集合框架是Java中处理数据结构的核心。它包括List(如...
"Java常用工具类包"是一个集合,它包含了多种针对不同场景的工具类,如文件操作、文本处理、对象转换等。下面将详细介绍这些工具类的主要功能及其应用场景。 1. **文件对比**: - Java中的`java.io.File`类可以...
"java常用工具类整理"这个主题涵盖了Java开发中常用的工具类,这些类在日常编程中非常实用,能大大提高开发效率。这里我们将深入探讨一些常见的Java工具类,并结合`com-jarvis-base`这个文件名,推测这是一个基础...
并且在平时开发中会遇到各种各样通用的一些功能,比如对json的处理,对String对象的处理,对Excel文件的处理,MD5加密处理,Bean对象处理等等,这些常用并通用的方法可以被封装成一个个工具类如StringUtil,...
在Java编程语言中,工具类集合是一系列实用的类,它们提供了各种通用功能,帮助开发者更高效地编写代码。这些工具类通常包含在Java的`java.util`以及其他相关的包中,如`java.text`,`javax.imageio`,`javax.xml`等...
"java常用工具类集合"是一个综合性的资源,它包含了从不同来源收集的实用工具类,旨在帮助开发者提高效率,减少代码重复。下面,我们将深入探讨这个主题,分析其中可能包含的知识点。 首先,`opslabJutil-master....
JUnit是Java中广泛使用的单元测试框架,它提供了断言、测试套件等功能,帮助开发者编写可测试的代码。 总之,Java工具类是提高开发效率的关键,它们封装了常见的操作,减少了代码重复,提高了代码可读性和维护性。...
"java常用工具类封装"是指将常见的功能如线程管理、数据解析、第三方库集成等进行封装,以提高代码的可重用性和可维护性。下面我们将深入探讨这些知识点: 1. **线程池**: Java中的线程池是由`java.util....
提供了很丰富的java工具类,包括字符串、数字、日期、文件、图像、编码解码、校验工具、文档操作等。 主要分为以下几种: - 1.通用操作类,例如String、数字、日期、各种校验等 - 2.文档操作,excel、pdf等 - 3.加密...
"Java常用工具类汇总"是一个集合了各种实用工具类的资源,旨在方便开发者在处理常见任务时提高效率。这个工具类库覆盖了字符串、文件、数组以及数学等多个方面,同时也提供了相应的API文档,使得开发者能够更好地...
在这个名为"牛逼的java常用工具类"的压缩包中,我们可以期待找到一些由经验丰富的开发者精心设计和优化的工具类,这些工具类能极大地提高开发效率,减少代码量,使程序更加健壮。下面,我们将详细探讨一些可能包含在...