java常用工具类 XML工具类、数据验证工具类
本文实例为大家分享了java常用工具类的具体代码,供大家参考,具体内容如下
packagecom.jarvis.base.util; importjava.io.File; importjava.io.FileWriter; importjava.io.IOException; importjava.io.StringReader; importjava.io.StringWriter; importjava.net.URL; importjava.util.Properties; importjavax.xml.transform.OutputKeys; importjavax.xml.transform.Result; importjavax.xml.transform.Source; importjavax.xml.transform.Transformer; importjavax.xml.transform.TransformerFactory; importjavax.xml.transform.stream.StreamResult; importjavax.xml.transform.stream.StreamSource; importorg.dom4j.Document; importorg.dom4j.Element; importorg.dom4j.io.OutputFormat; importorg.dom4j.io.SAXReader; importorg.dom4j.io.XMLWriter; /** * * *@Title:XMLHelper.java *@Packagecom.jarvis.base.util *@Description:XML工具类 *@versionV1.0 */ publicfinalclassXMLHelper{ /** *把XML按照给定的XSL进行转换,返回转换后的值 * *@paramxml *xml *@paramxsl *xsl *@return *@throwsException */ publicstaticStringxml2xsl(Stringxml,URLxsl)throwsException{ if(StringHelper.isEmpty(xml)){ thrownewException("xmlstringisempty"); } if(xsl==null){ thrownewException("xslstringisempty"); } StringWriterwriter=newStringWriter(); SourcexmlSource=null; SourcexslSource=null; Resultresult=null; try{ xmlSource=newStreamSource(newStringReader(xml)); xslSource=newStreamSource(xsl.openStream()); result=newStreamResult(writer); TransformerFactorytransFact=TransformerFactory.newInstance(); Transformertrans=transFact.newTransformer(xslSource); trans.transform(xmlSource,result); returnwriter.toString(); }catch(Exceptionex){ thrownewException(ex); }finally{ writer.close(); writer=null; xmlSource=null; xslSource=null; result=null; } } /** *把XML按用户定义好的XSL样式进行输出 * *@paramxmlFilePath *XML文档 *@paramxsl *XSL样式 *@return样式化后的字段串 */ publicstaticStringxml2xsl(StringxmlFilePath,Stringxsl)throwsException{ if(StringHelper.isEmpty(xmlFilePath)){ thrownewException("xmlstringisempty"); } if(StringHelper.isEmpty(xsl)){ thrownewException("xslstringisempty"); } StringWriterwriter=newStringWriter(); SourcexmlSource=newStreamSource(newFile(xmlFilePath)); SourcexslSource=newStreamSource(newFile(xsl)); Resultresult=newStreamResult(writer); try{ TransformerFactorytransFact=TransformerFactory.newInstance(); Transformertrans=transFact.newTransformer(xslSource); Propertiesproperties=trans.getOutputProperties(); properties.setProperty(OutputKeys.ENCODING,"UTF-8"); properties.put(OutputKeys.METHOD,"html"); trans.setOutputProperties(properties); trans.transform(xmlSource,result); returnwriter.toString(); }finally{ writer.close(); writer=null; xmlSource=null; xslSource=null; result=null; } } /** *读取XML文档,返回Document对象.
* *@paramxmlFile *XML文件路径 *@returnDocument对象 */ publicstaticDocumentgetDocument(StringxmlFile)throwsException{ if(StringHelper.isEmpty(xmlFile)){ returnnull; } Filefile=null; SAXReadersaxReader=newSAXReader(); file=newFile(xmlFile); returnsaxReader.read(file); } /** *读取XML文档,返回Document对象.
* *@paramxmlFile *file对象 *@returnDocument对象 */ publicstaticDocumentgetDocument(FilexmlFile){ try{ SAXReadersaxReader=newSAXReader(); returnsaxReader.read(xmlFile); }catch(Exceptionex){ ex.printStackTrace(); System.err.println("读取xml文件出错,返回null"); returnnull; } } /** *读取XML字串,返回Document对象 * *@paramxmlString *XML文件路径 *@returnDocument对象 */ publicstaticDocumentgetDocumentFromString(StringxmlString){ if(StringHelper.isEmpty(xmlString)){ returnnull; } try{ SAXReadersaxReader=newSAXReader(); returnsaxReader.read(newStringReader(xmlString)); }catch(Exceptionex){ ex.printStackTrace(); System.err.println("读取xml文件出错,返回null"); returnnull; } } /** *描述:把xml输出成为html作者:时间:Oct29,20084:57:56PM * *@paramxmlDoc *xmlDoc *@paramxslFile *xslFile *@paramencoding *编码 *@return *@throwsException */ publicstaticStringxml2html(StringxmlDoc,StringxslFile,Stringencoding)throwsException{ if(StringHelper.isEmpty(xmlDoc)){ thrownewException("xmlstringisempty"); } if(StringHelper.isEmpty(xslFile)){ thrownewException("xsltfileisempty"); } StringWriterwriter=newStringWriter(); SourcexmlSource=null; SourcexslSource=null; Resultresult=null; Stringhtml=null; try{ xmlSource=newStreamSource(newStringReader(xmlDoc)); xslSource=newStreamSource(newFile(xslFile)); result=newStreamResult(writer); TransformerFactorytransFact=TransformerFactory.newInstance(); Transformertrans=transFact.newTransformer(xslSource); Propertiesproperties=trans.getOutputProperties(); properties.put(OutputKeys.METHOD,"html"); properties.setProperty(OutputKeys.ENCODING,encoding); trans.setOutputProperties(properties); trans.transform(xmlSource,result); html=writer.toString(); writer.close(); returnhtml; }catch(Exceptionex){ thrownewException(ex); }finally{ writer=null; xmlSource=null; xslSource=null; result=null; } } /** *描述:把xml输出成为html * *@paramxmlFile *xmlFile *@paramxslFile *xslFile *@paramencoding *编码 *@return *@throwsException */ publicstaticStringxmlFile2html(StringxmlFile,StringxslFile,Stringencoding)throwsException{ if(StringHelper.isEmpty(xmlFile)){ thrownewException("xmlstringisempty"); } if(StringHelper.isEmpty(xslFile)){ thrownewException("xsltfileisempty"); } StringWriterwriter=newStringWriter(); SourcexmlSource=null; SourcexslSource=null; Resultresult=null; Stringhtml=null; try{ xmlSource=newStreamSource(newFile(xmlFile)); xslSource=newStreamSource(newFile(xslFile)); result=newStreamResult(writer); TransformerFactorytransFact=TransformerFactory.newInstance(); Transformertrans=transFact.newTransformer(xslSource); Propertiesproperties=trans.getOutputProperties(); properties.put(OutputKeys.METHOD,"html"); properties.setProperty(OutputKeys.ENCODING,encoding); trans.setOutputProperties(properties); trans.transform(xmlSource,result); html=writer.toString(); writer.close(); returnhtml; }catch(Exceptionex){ thrownewException(ex); }finally{ writer=null; xmlSource=null; xslSource=null; result=null; } } /** *描述: * *@paramname *名 *@paramelement *元素 *@return */ publicstaticStringgetString(Stringname,Elementelement){ return(element.valueOf(name)==null)?"":element.valueOf(name); } /** *将一个XML文档保存至文件中. * *@paramdoc *要保存的XML文档对象. *@paramfilePath *要保存到的文档路径. *@paramformat *要保存的输出格式 *@returntrue代表保存成功,否则代表不成功. */ publicstaticbooleansavaToFile(Documentdoc,StringfilePathName,OutputFormatformat){ XMLWriterwriter; try{ StringfilePath=FileHelper.getFullPath(filePathName); //若目录不存在,则建立目录 if(!FileHelper.exists(filePath)){ if(!FileHelper.createDirectory(filePath)){ returnfalse; } } writer=newXMLWriter(newFileWriter(newFile(filePathName)),format); writer.write(doc); writer.close(); returntrue; }catch(IOExceptionex){ ex.printStackTrace(); System.err.println("写文件出错"); } returnfalse; } /** *将一个XML文档保存至文件中. * *@paramfilePath *要保存到的文档路径. *@paramdoc *要保存的XML文档对象. *@returntrue代表保存成功,否则代表不成功. */ publicstaticbooleanwriteToXml(StringfilePathName,Documentdoc){ OutputFormatformat=OutputFormat.createCompactFormat(); format.setEncoding("UTF-8"); returnsavaToFile(doc,filePathName,format); } }
数据验证工具类
packagecom.jarvis.base.util; importjava.text.ParseException; importjava.text.SimpleDateFormat; importjava.util.Calendar; importjava.util.Date; importjava.util.regex.Matcher; importjava.util.regex.Pattern; /** *说明:常用的数据验证工具类。 * */ publicclassValidateUtil{ publicstaticfinalPatternCODE_PATTERN=Pattern.compile("^0\\d{2,4}$"); publicstaticfinalPatternPOSTCODE_PATTERN=Pattern.compile("^\\d{6}$"); publicstaticfinalPatternBANK_CARD_PATTERN=Pattern.compile("^\\d{16,30}$"); /** *匹配图象 * * *格式:/相对路径/文件名.后缀(后缀为gif,dmp,png) * *匹配:/forum/head_icon/admini2005111_ff.gif或admini2005111.dmp * * *不匹配:c:/admins4512.gif * */ publicstaticfinalStringICON_REGEXP="^(/{0,1}//w){1,}//.(gif|dmp|png|jpg)$|^//w{1,}//.(gif|dmp|png|jpg)$"; /** *匹配email地址 * * *格式:XXX@XXX.XXX.XX * *匹配:foo@bar.com或foobar@foobar.com.au * *不匹配:foo@bar或$$$@bar.com * */ publicstaticfinalStringEMAIL_REGEXP="(?://w[-._//w]*//w@//w[-._//w]*//w//.//w{2,3}$)"; /** *匹配并提取url * * *格式:XXXX://XXX.XXX.XXX.XX/XXX.XXX?XXX=XXX * *匹配:http://www.suncer.com或news://www * *不匹配:c:/window * */ publicstaticfinalStringURL_REGEXP="(//w+)://([^/:]+)(://d*)?([^#//s]*)"; /** *匹配并提取http * *格式:http://XXX.XXX.XXX.XX/XXX.XXX?XXX=XXX或ftp://XXX.XXX.XXX或 *https://XXX * *匹配:http://www.suncer.com:8080/index.html?login=true * *不匹配:news://www * */ publicstaticfinalStringHTTP_REGEXP="(http|https|ftp)://([^/:]+)(://d*)?([^#//s]*)"; /** *匹配日期 * * *格式(首位不为0):XXXX-XX-XX或XXXX-X-X * * *范围:1900--2099 * * *匹配:2005-04-04 * * *不匹配:01-01-01 * */ publicstaticfinalStringDATE_BARS_REGEXP="^((((19){1}|(20){1})\\d{2})|\\d{2})-[0,1]?\\d{1}-[0-3]?\\d{1}$"; /** *匹配日期 * * *格式:XXXX/XX/XX * * *范围: * * *匹配:2005/04/04 * * *不匹配:01/01/01 * */ publicstaticfinalStringDATE_SLASH_REGEXP="^[0-9]{4}/(((0[13578]|(10|12))/(0[1-9]|[1-2][0-9]|3[0-1]))|(02-(0[1-9]|[1-2][0-9]))|((0[469]|11)/(0[1-9]|[1-2][0-9]|30)))$"; /** *匹配电话 * * *格式为:0XXX-XXXXXX(10-13位首位必须为0)或0XXXXXXXXXX(10-13位首位必须为0)或 * *(0XXX)XXXXXXXX(11-14位首位必须为0)或XXXXXXXX(6-8位首位不为0)或 *XXXXXXXXXXX(11位首位不为0) * * *匹配:0371-123456或(0371)1234567或(0371)12345678或010-123456或 *010-12345678或12345678912 * * *不匹配:1111-134355或0123456789 * */ publicstaticfinalStringPHONE_REGEXP="^(?:0[0-9]{2,3}[-//s]{1}|//(0[0-9]{2,4}//))[0-9]{6,8}$|^[1-9]{1}[0-9]{5,7}$|^[1-9]{1}[0-9]{10}$"; /** *匹配身份证 * *格式为:XXXXXXXXXX(10位)或XXXXXXXXXXXXX(13位)或XXXXXXXXXXXXXXX(15位)或 *XXXXXXXXXXXXXXXXXX(18位) * *匹配:0123456789123 * *不匹配:0123456 * */ publicstaticfinalStringID_CARD_REGEXP="^//d{10}|//d{13}|//d{15}|//d{18}$"; /** *匹配邮编代码 * *格式为:XXXXXX(6位) * *匹配:012345 * *不匹配:0123456 * */ publicstaticfinalStringZIP_REGEXP="^[0-9]{6}$";//匹配邮编代码 /** *不包括特殊字符的匹配(字符串中不包括符号数学次方号^单引号'双引号"分号;逗号,帽号:数学减号-右尖括号>左尖括号<反斜杠/ *即空格,制表符,回车符等) * *格式为:x或一个一上的字符 * *匹配:012345 * *不匹配:0123456//;,:-<>//s].+$";// */ publicstaticfinalStringNON_SPECIAL_CHAR_REGEXP="^[^'/"; //匹配邮编代码 /** *匹配非负整数(正整数+0) */ publicstaticfinalStringNON_NEGATIVE_INTEGERS_REGEXP="^//d+$"; /** *匹配不包括零的非负整数(正整数>0) */ publicstaticfinalStringNON_ZERO_NEGATIVE_INTEGERS_REGEXP="^[1-9]+//d*$"; /** * *匹配正整数 * */ publicstaticfinalStringPOSITIVE_INTEGER_REGEXP="^[0-9]*[1-9][0-9]*$"; /** * *匹配非正整数(负整数+0) * */ publicstaticfinalStringNON_POSITIVE_INTEGERS_REGEXP="^((-//d+)|(0+))$"; /** * *匹配负整数 * */ publicstaticfinalStringNEGATIVE_INTEGERS_REGEXP="^-[0-9]*[1-9][0-9]*$"; /** * *匹配整数 * */ publicstaticfinalStringINTEGER_REGEXP="^-?//d+$"; /** * *匹配非负浮点数(正浮点数+0) * */ publicstaticfinalStringNON_NEGATIVE_RATIONAL_NUMBERS_REGEXP="^//d+(//.//d+)?$"; /** * *匹配正浮点数 * */ publicstaticfinalStringPOSITIVE_RATIONAL_NUMBERS_REGEXP="^(([0-9]+//.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*//.[0-9]+)|([0-9]*[1-9][0-9]*))$"; /** * *匹配非正浮点数(负浮点数+0) * */ publicstaticfinalStringNON_POSITIVE_RATIONAL_NUMBERS_REGEXP="^((-//d+(//.//d+)?)|(0+(//.0+)?))$"; /** * *匹配负浮点数 * */ publicstaticfinalStringNEGATIVE_RATIONAL_NUMBERS_REGEXP="^(-(([0-9]+//.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*//.[0-9]+)|([0-9]*[1-9][0-9]*)))$"; /** * *匹配浮点数 * */ publicstaticfinalStringRATIONAL_NUMBERS_REGEXP="^(-?//d+)(//.//d+)?$"; /** * *匹配由26个英文字母组成的字符串 * */ publicstaticfinalStringLETTER_REGEXP="^[A-Za-z]+$"; /** * *匹配由26个英文字母的大写组成的字符串 * */ publicstaticfinalStringUPWARD_LETTER_REGEXP="^[A-Z]+$"; /** * *匹配由26个英文字母的小写组成的字符串 * */ publicstaticfinalStringLOWER_LETTER_REGEXP="^[a-z]+$"; /** * *匹配由数字和26个英文字母组成的字符串 * */ publicstaticfinalStringLETTER_NUMBER_REGEXP="^[A-Za-z0-9]+$"; /** * *匹配由数字、26个英文字母或者下划线组成的字符串 * */ publicstaticfinalStringLETTER_NUMBER_UNDERLINE_REGEXP="^//w+$"; publicstaticbooleanvalidateEmail(Stringstr){ if(str==null||str.trim().length()==0){ returnfalse; } Patternpattern=Pattern.compile( "^([\\w-\\.]+)@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.)|(([\\w-]+\\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\\]?)$"); //Patternpattern= //Pattern.compile("^([a-zA-Z0-9_-])+@(([a-zA-z0-9]-*){1,}\\.){1,3}[a-zA-z\\-]{1,}"); Matchermatcher=pattern.matcher(str); returnmatcher.matches(); } publicstaticbooleanvalidateMoblie(Stringstr){ if(str==null||str.trim().length()==0){ returnfalse; } Patternpattern=Pattern.compile("^(13|14|15|17|18)[0-9]{9}$"); Matchermatcher=pattern.matcher(str); returnmatcher.matches(); } /** *验证区号是否有效. * *@paramcode要验证的区号 *@return是否正确身份证 */ publicstaticbooleanvalidateCode(Stringcode){ if(StringHelper.isEmpty(code)){ returnfalse; } Matcherm=CODE_PATTERN.matcher(code); returnm.matches(); } /** *验证邮政编码是否有效. * *@parampostcode要验证的邮政编码 *@return是否正确邮政编码 */ publicstaticbooleanvalidatePostcode(Stringpostcode){ if(StringHelper.isEmpty(postcode)){ returnfalse; } Matcherm=POSTCODE_PATTERN.matcher(postcode); returnm.matches(); } /** *验证银行卡是否有效. * *@parambankCardNumber要验证的银行卡号 *@return是否正确银行卡号 */ publicstaticbooleanvalidateBankCardNumber(StringbankCardNumber){ if(StringHelper.isEmpty(bankCardNumber)){ returnfalse; } Matcherm=BANK_CARD_PATTERN.matcher(bankCardNumber); returnm.matches(); } /** *通过身份证获取生日 * *@paramidNumber身份证号 *@return返回生日,格式为yyyy-MM-dd的字符串 */ publicstaticStringgetBirthdayByIdNumber(StringidNumber){ Stringbirthday=""; if(idNumber.length()==15){ birthday="19"+idNumber.substring(6,8)+"-"+idNumber.substring(8,10)+"-"+idNumber.substring(10,12); }elseif(idNumber.length()==18){ birthday=idNumber.substring(6,10)+"-"+idNumber.substring(10,12)+"-"+idNumber.substring(12,14); } returnbirthday; } /** *通过身份证获取性别 * *@paramidNumber身份证号 *@return返回性别,0保密,1男2女 */ publicstaticIntegergetGenderByIdNumber(StringidNumber){ intgender=0; if(idNumber.length()==15){ gender=Integer.parseInt(String.valueOf(idNumber.charAt(14)))%2==0?2:1; }elseif(idNumber.length()==18){ gender=Integer.parseInt(String.valueOf(idNumber.charAt(16)))%2==0?2:1; } returngender; } /** *通过身份证获取年龄 * *@paramidNumber身份证号 *@paramisNominalAge是否按元旦算年龄,过了1月1日加一岁true:是false:否 *@return返回年龄 */ publicstaticIntegergetAgeByIdNumber(StringidNumber,booleanisNominalAge){ StringbirthString=getBirthdayByIdNumber(idNumber); if(StringHelper.isEmpty(birthString)){ return0; } returngetAgeByBirthString(birthString,isNominalAge); } /** *通过生日日期获取年龄 * *@parambirthDate生日日期 *@return返回年龄 */ publicstaticIntegergetAgeByBirthDate(DatebirthDate){ returngetAgeByBirthString(newSimpleDateFormat("yyyy-MM-dd").format(birthDate)); } /** *通过生日字符串获取年龄 * *@parambirthString生日字符串 *@return返回年龄 */ publicstaticIntegergetAgeByBirthString(StringbirthString){ returngetAgeByBirthString(birthString,"yyyy-MM-dd"); } /** *通过生日字符串获取年龄 * *@parambirthString生日字符串 *@paramisNominalAge是否按元旦算年龄,过了1月1日加一岁true:是false:否 *@return返回年龄 */ publicstaticIntegergetAgeByBirthString(StringbirthString,booleanisNominalAge){ returngetAgeByBirthString(birthString,"yyyy-MM-dd",isNominalAge); } /** *通过生日字符串获取年龄 * *@parambirthString生日字符串 *@paramformat日期字符串格式,为空则默认"yyyy-MM-dd" *@return返回年龄 */ publicstaticIntegergetAgeByBirthString(StringbirthString,Stringformat){ returngetAgeByBirthString(birthString,"yyyy-MM-dd",false); } /** *通过生日字符串获取年龄 * *@parambirthString生日字符串 *@paramformat日期字符串格式,为空则默认"yyyy-MM-dd" *@paramisNominalAge是否按元旦算年龄,过了1月1日加一岁true:是false:否 *@return返回年龄 */ publicstaticIntegergetAgeByBirthString(StringbirthString,Stringformat,booleanisNominalAge){ intage=0; if(StringHelper.isEmpty(birthString)){ returnage; } if(StringHelper.isEmpty(format)){ format="yyyy-MM-dd"; } try{ Calendarbirthday=Calendar.getInstance(); Calendartoday=Calendar.getInstance(); SimpleDateFormatsdf=newSimpleDateFormat(format); birthday.setTime(sdf.parse(birthString)); age=today.get(Calendar.YEAR)-birthday.get(Calendar.YEAR); if(!isNominalAge){ if(today.get(Calendar.MONTH)以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。