`

开发中日常操作转化工具类

 
阅读更多
Java代码
  1. packagecom.util;
  2. importjava.io.File;
  3. importjava.io.FileInputStream;
  4. importjava.io.IOException;
  5. importjava.io.InputStream;
  6. importjava.io.OutputStream;
  7. importjava.io.Writer;
  8. importjava.lang.reflect.Method;
  9. importjava.net.InetAddress;
  10. importjava.net.NetworkInterface;
  11. importjava.text.ParseException;
  12. importjava.text.SimpleDateFormat;
  13. importjava.util.ArrayList;
  14. importjava.util.Calendar;
  15. importjava.util.Date;
  16. importjava.util.Enumeration;
  17. importjava.util.HashMap;
  18. importjava.util.List;
  19. importjava.util.Locale;
  20. importjava.util.Map;
  21. importjava.util.regex.Matcher;
  22. importjava.util.regex.Pattern;
  23. importjavax.servlet.http.HttpServletResponse;
  24. importorg.apache.commons.logging.Log;
  25. importorg.apache.commons.logging.LogFactory;
  26. publicclassUtil
  27. {
  28. /**
  29. *ERRORTYPE
  30. */
  31. publicstaticfinalStringERRORTYPE="TYPE";
  32. /**
  33. *ERRORTYPE_ERROR
  34. */
  35. publicstaticfinalStringERRORTYPE_ERROR="ERROR";
  36. /**
  37. *ERRORCODE
  38. */
  39. publicstaticfinalStringERRORCODE="ERRORCODE";
  40. /**
  41. *ERRORINFO
  42. */
  43. publicstaticfinalStringERRORINFO="ERRORINFO";
  44. /**
  45. *GOPAGE
  46. */
  47. publicstaticfinalStringGOPAGE="GOPAGE";
  48. /**
  49. *有效小数
  50. */
  51. publicstaticfinalintEFFECTIVE=2;
  52. protectedstaticfinalLogLOG=LogFactory.getLog(Util.class);
  53. /**
  54. *移除重复
  55. *
  56. *@paramarr
  57. *要处理的字符串数
  58. *@return处理后的字符串数
  59. */
  60. publicstaticString[]removeRepeat(String[]arr)
  61. {
  62. if(arr==null)
  63. {
  64. returnnewString[0];
  65. }
  66. else
  67. {
  68. Map<String,String>map=newHashMap<String,String>();
  69. for(Stringstr:arr)
  70. {
  71. Stringstrt=map.get(str);
  72. if(strt==null)
  73. {
  74. map.put(str,str);
  75. }
  76. }
  77. List<String>list=newArrayList<String>();
  78. for(Map.Entry<String,String>entry:map.entrySet())
  79. {
  80. list.add(entry.getKey());
  81. }
  82. String[]strArr=newString[list.size()];
  83. returnlist.toArray(strArr);
  84. }
  85. }
  86. /**
  87. *移除重复
  88. *
  89. */
  90. publicstaticStringremoveRepeat(Stringstr)
  91. {
  92. if(str==null)
  93. {
  94. return"";
  95. }
  96. else
  97. {
  98. str=str.replaceAll("^,+","");
  99. str=str.replaceAll(",+$","");
  100. str=str.replaceAll(",+",",");
  101. StringBufferbuf=newStringBuffer();
  102. for(Stringstrt:removeRepeat(str.split(",")))
  103. {
  104. buf.append(strt).append(',');
  105. }
  106. str=removeEnd(buf.toString());
  107. returnstr;
  108. }
  109. }
  110. /**
  111. *移除开头的逗号
  112. *
  113. */
  114. publicstaticStringremoveBegin(Stringstr)
  115. {
  116. if(str==null)
  117. {
  118. return"";
  119. }
  120. else
  121. {
  122. Matchermatcher=Pattern.compile("^,+").matcher(str);
  123. str=matcher.replaceAll("");
  124. returnstr;
  125. }
  126. }
  127. /**
  128. *移除结尾的逗号
  129. *
  130. */
  131. publicstaticStringremoveEnd(Stringstr)
  132. {
  133. if(str==null)
  134. {
  135. return"";
  136. }
  137. else
  138. {
  139. Matchermatcher=Pattern.compile(",+$").matcher(str);
  140. str=matcher.replaceAll("");
  141. returnstr;
  142. }
  143. }
  144. /**
  145. *格式化日期
  146. *@paramdate日期
  147. *@parampattern格式
  148. *@returnStringString
  149. */
  150. publicstaticStringformatDate(Datedate,Stringpattern)
  151. {
  152. SimpleDateFormatformat=newSimpleDateFormat(pattern);
  153. returnformat.format(date);
  154. }
  155. /**
  156. *〈计算两个日期相差的天数〉
  157. *〈功能详细描述〉
  158. *@parambegin开始日期
  159. *@paramend结束日期
  160. *@returnlong
  161. */
  162. publicstaticlongcalDays(Datebegin,Dateend)
  163. {
  164. longtime=end.getTime()-begin.getTime();
  165. longdays=time/24/60/60/1000;
  166. returndays;
  167. }
  168. /**
  169. *获取未来第几天的时间yyyy-MM-dd
  170. *@paramdayNum
  171. *@return
  172. */
  173. publicstaticStringgetNextDay(intdayNum){
  174. Calendarcal=Calendar.getInstance();
  175. Datedate=newDate();
  176. SimpleDateFormatsdf=newSimpleDateFormat("yyyy-MM-dd");
  177. StringreturnDate="";
  178. try
  179. {
  180. cal.setTime(date);
  181. cal.add(Calendar.DATE,dayNum);
  182. returnDate=sdf.format(cal.getTime());
  183. }
  184. catch(Exceptione)
  185. {
  186. e.printStackTrace();
  187. }
  188. returnreturnDate;
  189. }
  190. /**
  191. *格式化日期
  192. *@paramstr日期字符串
  193. *@parampattern格式
  194. *@returnDateDate
  195. */
  196. publicstaticDateformatDate(Stringstr,Stringpattern)
  197. {
  198. Datedate=null;
  199. try
  200. {
  201. SimpleDateFormatformat=newSimpleDateFormat(pattern);
  202. date=format.parse(str);
  203. }
  204. catch(ParseExceptione)
  205. {
  206. date=newDate();
  207. }
  208. returndate;
  209. }
  210. /**
  211. *解析字符
  212. *
  213. *@paramkey
  214. *key
  215. *@paramstr
  216. *str
  217. *@returnvalue
  218. */
  219. publicstaticStringgetValue(Stringkey,Stringstr)
  220. {
  221. if(key==null||str==null)
  222. {
  223. return"";
  224. }
  225. String[]strArr=str.split(",");
  226. for(StringtempStr:strArr)
  227. {
  228. if(key.equals(tempStr.split(":")[0]))
  229. {
  230. returntempStr.split(":")[1];
  231. }
  232. }
  233. return"";
  234. }
  235. /**
  236. *解析字符
  237. *
  238. *@paramkey
  239. *key
  240. *@paramstr
  241. *str
  242. *@returnvalue
  243. */
  244. publicstaticintgetIntValue(Stringkey,Stringstr)
  245. {
  246. intresult=0;
  247. if(str==null)
  248. {
  249. returnresult;
  250. }
  251. String[]strArr=str.split(",");
  252. Stringvalue="0";
  253. for(StringtempStr:strArr)
  254. {
  255. if(key.equals(tempStr.split(":")[0]))
  256. {
  257. value=tempStr.split(":")[1];
  258. }
  259. }
  260. try
  261. {
  262. result=Integer.parseInt(value);
  263. }
  264. catch(Exceptione)
  265. {
  266. result=0;
  267. }
  268. returnresult;
  269. }
  270. /**
  271. *解析字符
  272. */
  273. publicstaticString[]getValue(Stringstr)
  274. {
  275. if(str==null)
  276. {
  277. returnnewString[0];
  278. }
  279. returnstr.split(",");
  280. }
  281. /**
  282. *直接向用户返回指定信息
  283. *
  284. *@paramresponse
  285. *response
  286. *@parammsg
  287. *void
  288. */
  289. publicstaticvoidreturnMsg(HttpServletResponseresponse,Stringmsg)
  290. {
  291. Writerout=null;
  292. try
  293. {
  294. out=response.getWriter();
  295. out.write(msg);
  296. out.close();
  297. }
  298. catch(IOExceptione)
  299. {
  300. LOG.error(e);
  301. }
  302. }
  303. /**
  304. *
  305. *@paramstrstr
  306. *@paramregreg
  307. *@paramnewValuenewValue
  308. *@returnString
  309. */
  310. publicstaticStringreplace(Stringstr,Stringreg,StringnewValue)
  311. {
  312. if(!isEmpty(str))
  313. {
  314. Matchermatcher=Pattern.compile(reg,Pattern.CASE_INSENSITIVE).matcher(str);
  315. str=matcher.replaceAll(newValue);
  316. }
  317. returnstr;
  318. }
  319. /**
  320. *
  321. *@paramstrstr
  322. *@paramregreg
  323. *@paramnewValuenewValue
  324. *@paramparamparam
  325. *@returnString
  326. */
  327. publicstaticStringreplace(Stringstr,Stringreg,StringnewValue,intparam)
  328. {
  329. if(!isEmpty(str))
  330. {
  331. Matchermatcher=Pattern.compile(reg,param).matcher(str);
  332. str=matcher.replaceAll(newValue);
  333. }
  334. returnstr;
  335. }
  336. /**
  337. *〈移除字符串中的js代码
  338. *
  339. *@paramstr
  340. *str
  341. *@returnString
  342. */
  343. publicstaticStringremoveScript(Stringstr)
  344. {
  345. if(str==null||"".equals(str))
  346. {
  347. return"";
  348. }
  349. intparam=Pattern.CASE_INSENSITIVE|Pattern.MULTILINE|Pattern.DOTALL;
  350. Matchermatcher=Pattern.compile("<script>.*</script>",param).matcher(str);
  351. str=matcher.replaceAll("");
  352. returnstr;
  353. }
  354. /**
  355. *字符串转成整数
  356. *
  357. *@paramstr
  358. *字符
  359. *@return数字
  360. */
  361. publicstaticintparseInt(Stringstr)
  362. {
  363. intresult=0;
  364. try
  365. {
  366. result=Integer.parseInt(str);
  367. }
  368. catch(Exceptione)
  369. {
  370. result=0;
  371. }
  372. returnresult;
  373. }
  374. /**
  375. *〈文件重命名〉
  376. *
  377. *@paramrealPath
  378. *文件绝对路径
  379. *@paramnewName
  380. *新文件名
  381. *@returnString
  382. */
  383. publicstaticStringrename(StringrealPath,StringnewName)
  384. {
  385. Filefile=newFile(realPath);
  386. //包含后缀的文件名
  387. StringfileName=file.getName();
  388. //不包含后的文件名
  389. Stringname=fileName.substring(0,fileName.lastIndexOf('.'));
  390. //带后的新文件名称
  391. newName=fileName.replace(name,newName);
  392. realPath=realPath.replace(fileName,newName);
  393. if(file.exists())
  394. {
  395. try
  396. {
  397. if(!file.renameTo(newFile(realPath)))
  398. {
  399. thrownewException();
  400. }
  401. }
  402. catch(Exceptione)
  403. {
  404. e.printStackTrace();
  405. }
  406. }
  407. returnnewName;
  408. }
  409. /**
  410. *把数组转换成字符串,并以逗号分隔
  411. *
  412. *@paramarr
  413. *arr
  414. *@return转换结果
  415. */
  416. publicstaticStringarrayToString(String[]arr)
  417. {
  418. if(arr==null)
  419. {
  420. return"";
  421. }
  422. StringBufferbuf=newStringBuffer();
  423. for(Stringstr:arr)
  424. {
  425. if(str!=null&&!"".equals(str))
  426. {
  427. buf.append(str).append(',');
  428. }
  429. }
  430. Stringresult=buf.toString();
  431. result=result.replaceAll(",$","");
  432. returnresult;
  433. }
  434. /**
  435. *写Excel
  436. *
  437. *@paramresponse
  438. *response
  439. *@paramfile
  440. *file
  441. */
  442. publicstaticvoidwriteExcel(HttpServletResponseresponse,Filefile)
  443. {
  444. if(file!=null&&file.exists())
  445. {
  446. response.reset();
  447. response.setContentType("application/vnd.ms-excel");
  448. response.addHeader("Content-Disposition","attachment;filename=\""+file.getName()+"\"");
  449. InputStreaminStream=null;
  450. try
  451. {
  452. inStream=newFileInputStream(file);
  453. intlen=inStream.read();
  454. while(len!=-1)
  455. {
  456. response.getWriter().write(len);
  457. len=inStream.read();
  458. }
  459. }
  460. catch(Exceptione)
  461. {
  462. e.printStackTrace();
  463. }
  464. finally
  465. {
  466. Util.close(inStream);
  467. }
  468. }
  469. }
  470. /**
  471. *
  472. *@paramreg
  473. *reg
  474. *@paramstr
  475. *str
  476. *@returnboolean
  477. */
  478. publicstaticbooleantest(Stringreg,Stringstr)
  479. {
  480. Matchermatcher=Pattern.compile(reg).matcher(str);
  481. returnmatcher.find();
  482. }
  483. /**
  484. *关闭流
  485. *@paraminsvoid
  486. */
  487. publicstaticvoidclose(InputStreamins)
  488. {
  489. if(ins!=null)
  490. {
  491. try
  492. {
  493. ins.close();
  494. }
  495. catch(IOExceptione)
  496. {
  497. e.printStackTrace();
  498. }
  499. }
  500. }
  501. /**
  502. *关闭流
  503. *@paramousvoid
  504. */
  505. publicstaticvoidclose(OutputStreamous)
  506. {
  507. if(ous!=null)
  508. {
  509. try
  510. {
  511. ous.close();
  512. }
  513. catch(IOExceptione)
  514. {
  515. e.printStackTrace();
  516. }
  517. }
  518. }
  519. /**
  520. *
  521. *〈重新组装查询条件〉
  522. *〈如果查询条件包含"_"就在"_"之前加上转义字符"/"〉
  523. *@paramqueryCondition查询条件
  524. *@returnString
  525. */
  526. publicstaticStringresetCondition(StringqueryCondition)
  527. {
  528. char[]temps=queryCondition.toCharArray();
  529. //查询条件
  530. StringBuffercondition=newStringBuffer();
  531. //重新组装查询条件的字符串,如果包"_"就在"_"之前加上转义字符"/"
  532. for(chartemp:temps)
  533. {
  534. if('_'==temp)
  535. {
  536. condition.append('/').append(temp);
  537. }
  538. else
  539. {
  540. condition.append(temp);
  541. }
  542. }
  543. returncondition.toString();
  544. }
  545. /**
  546. *〈验证字符串是否为空〉
  547. *@paramstrstr
  548. *@returnboolean
  549. */
  550. publicstaticbooleanisEmpty(Stringstr)
  551. {
  552. returnstr==null||"".equals(str);
  553. }
  554. /**
  555. *〈验证字符串是否不为空〉
  556. *@paramstrstr
  557. *@returnboolean
  558. */
  559. publicstaticbooleannotEmpty(Stringstr)
  560. {
  561. return!isEmpty(str);
  562. }
  563. /**
  564. *〈验证字符串是否为空〉
  565. *@paramstrstr
  566. *@returnboolean
  567. */
  568. publicstaticbooleanisEmpty(Objectstr)
  569. {
  570. returnstr==null;
  571. }
  572. /**
  573. *〈〈验证字符串是否为空〉
  574. *@paramlistlist
  575. *@returnboolean
  576. */
  577. publicstaticbooleanisEmpty(List<?>list)
  578. {
  579. returnlist==null||list.isEmpty();
  580. }
  581. /**
  582. *〈〈验证字符串是否不为空〉
  583. *@paramlistlist
  584. *@returnboolean
  585. */
  586. publicstaticbooleannotEmpty(List<?>list)
  587. {
  588. return!isEmpty(list);
  589. }
  590. /**
  591. *〈验证字符串是否为空〉
  592. *@parammap待处理的集合
  593. *@returnboolean
  594. */
  595. publicstaticbooleanisEmpty(Map<?,?>map)
  596. {
  597. returnmap==null||map.isEmpty();
  598. }
  599. /**
  600. *〈验证字符串是否不为空〉
  601. *@parammap待处理的集合
  602. *@returnboolean
  603. */
  604. publicstaticbooleannotEmpty(Map<?,?>map)
  605. {
  606. return!isEmpty(map);
  607. }
  608. /**
  609. *〈转换为小写
  610. *@paramstrstr
  611. *@returnString
  612. */
  613. publicstaticStringlowerCase(Stringstr)
  614. {
  615. if(str!=null)
  616. {
  617. str=str.toLowerCase(Locale.CHINESE);
  618. }
  619. returnstr;
  620. }
  621. /**
  622. *〈转换为大写〉
  623. *@paramstrstr
  624. *@returnString
  625. */
  626. publicstaticStringupperCase(Stringstr)
  627. {
  628. if(str!=null)
  629. {
  630. str=str.toUpperCase(Locale.CHINESE);
  631. }
  632. returnstr;
  633. }
  634. /**
  635. *〈一句话功能描述〉
  636. *@paramclscls
  637. *@parammethodNamemethodName
  638. *@paramclassArrclassArr
  639. *@returnMethod
  640. */
  641. @SuppressWarnings("unchecked")
  642. publicstaticMethodgetMethod(Class<?>cls,StringmethodName,Class[]classArr)
  643. {
  644. Methodmtd=null;
  645. try
  646. {
  647. mtd=cls.getDeclaredMethod(methodName,classArr);
  648. }
  649. catch(SecurityExceptione)
  650. {
  651. LOG.error(e);
  652. }
  653. catch(NoSuchMethodExceptione)
  654. {
  655. LOG.error(e);
  656. }
  657. returnmtd;
  658. }
  659. /**
  660. *获取当前服务器ip
  661. *@returnString
  662. */
  663. publicstaticStringgetLocalSiteIP()
  664. {
  665. StringsiteString="";
  666. try
  667. {
  668. Enumeration<NetworkInterface>netInterfaces=NetworkInterface.getNetworkInterfaces();
  669. NetworkInterfacenetworkInterface=null;
  670. InetAddressipAddress=null;
  671. while(netInterfaces.hasMoreElements())
  672. {
  673. networkInterface=(NetworkInterface)netInterfaces.nextElement();
  674. ipAddress=(InetAddress)networkInterface.getInetAddresses().nextElement();
  675. if(ipAddress.isSiteLocalAddress()&&!ipAddress.isLoopbackAddress()
  676. &&ipAddress.getHostAddress().indexOf(":")==-1)
  677. {
  678. siteString=ipAddress.getHostAddress();
  679. }
  680. }
  681. }
  682. catch(Exceptione)
  683. {
  684. e.toString();
  685. }
  686. returnsiteString;
  687. }
  688. /**
  689. *〈trim公共方法
  690. *〈功能详细描述
  691. *@paramstrstr
  692. *@returnString
  693. */
  694. publicstaticStringtrim(Stringstr)
  695. {
  696. if(str!=null)
  697. {
  698. str=str.trim();
  699. }
  700. returnstr;
  701. }
  702. /**
  703. *检查算法表达式合法性
  704. *@paramcalculateScript计算脚本
  705. *@return返回true表达式合?,false表达式不合法
  706. */
  707. publicstaticbooleancheckCalculateScript(StringcalculateScript)
  708. {
  709. returntrue;
  710. }
  711. /**
  712. *获取系统时间
  713. *@return当前系统时间
  714. */
  715. publicstaticDategetSysDate()
  716. {
  717. SimpleDateFormatft=null;
  718. Calendarcal=Calendar.getInstance();
  719. //格式可以自己根据要求修改
  720. ft=newSimpleDateFormat("yyyy-MM-ddHH:mm:ss");
  721. StringdateTime=ft.format(cal.getTime());
  722. DatenowDate=null;
  723. try
  724. {
  725. nowDate=ft.parse(dateTime);
  726. }
  727. catch(ParseExceptione)
  728. {
  729. LOG.error(e);
  730. //e.printStackTrace();
  731. }
  732. returnnowDate;
  733. }
  734. /**
  735. *〈根据系统当前时间获取下一个月日期对象〉
  736. *〈功能详细描述〉
  737. *@returnDate
  738. */
  739. publicstaticDategetNextMonth()
  740. {
  741. Calendarcal=Calendar.getInstance();
  742. cal.add(Calendar.MONTH,1);
  743. returncal.getTime();
  744. }
  745. /**
  746. *设置文件输出流的文件名
  747. *@paramfailName文件名
  748. *@paramresponsevoid
  749. */
  750. publicstaticvoidresponseSetHeader(StringfailName,HttpServletResponseresponse)
  751. {
  752. response.setHeader("Content-disposition","attachment;filename="+failName);
  753. response.setContentType("application/msexcel");
  754. }
  755. /**
  756. *〈为空验证〉
  757. *@paramstr待验证字符串
  758. *@parampropprop
  759. *@returnboolean
  760. */
  761. protectedstaticbooleanempty(Stringstr,Stringprop)
  762. {
  763. if(str==null)
  764. {
  765. returnfalse;
  766. }
  767. if("".equals(str.trim()))
  768. {
  769. returnfalse;
  770. }
  771. returntrue;
  772. }
  773. /*
  774. *〈按字节验证字符串长度〉
  775. *@paramstr待验证字符串
  776. *@parampropprop
  777. *@returnboolean
  778. */
  779. /*publicstaticbooleanbyteLength(Stringstr,Stringprop)
  780. {
  781. intlength=20;
  782. if(Util.isEmpty(str))
  783. {
  784. returntrue;
  785. }
  786. char[]chars=str.toCharArray();
  787. intlen=0;
  788. for(inti=0;i<chars.length;i++)
  789. {
  790. len++;
  791. //判断是否非字母
  792. if(chars[i]/0x80==0)
  793. {
  794. len++;
  795. }
  796. }
  797. returnlen<=length;
  798. }*/
  799. /**
  800. *〈非法字符〉
  801. *@paramstr待验证字符串
  802. *@parampropprop
  803. *@returnboolean
  804. */
  805. protectedstaticbooleanlawless(Stringstr)
  806. {
  807. booleanresult=false;
  808. if(Util.isEmpty(str))
  809. {
  810. result=true;
  811. }
  812. result=!Util.test("^[-~!@#$%^&*()_+|=\\;':\",./<>?]+$",str);
  813. returnresult;
  814. }
  815. /**
  816. *〈验证只能为汉字〉
  817. *@paramstr待验证字符串
  818. *@parampropprop
  819. *@returnboolean
  820. */
  821. protectedstaticbooleanchinese(Stringstr)
  822. {
  823. if(Util.isEmpty(str))
  824. {
  825. returntrue;
  826. }
  827. returnUtil.test("^[\u4E00-\u9FA5]+$",str);
  828. }
  829. /**
  830. *〈验证只能为字母〉
  831. *@paramstr待验证字符串
  832. *@returnboolean
  833. */
  834. protectedstaticbooleanletter(Stringstr)
  835. {
  836. if(Util.isEmpty(str))
  837. {
  838. returntrue;
  839. }
  840. returnUtil.test("^[a-zA-Z]+$",str);
  841. }
  842. /**
  843. *〈验证数字是否在指定范围〉
  844. *@paramstrstr
  845. *@parampropprop
  846. *@returnboolean
  847. */
  848. protectedstaticbooleannumber(Stringstr)
  849. {
  850. returntrue;
  851. }
  852. /**
  853. *〈验证手机号码〉
  854. *@paramstr待验证字符串
  855. *@parampropprop
  856. *@returnboolean
  857. */
  858. protectedstaticbooleanmobile(Stringstr)
  859. {
  860. if(Util.isEmpty(str))
  861. {
  862. returntrue;
  863. }
  864. returnUtil.test("^1\\d{10}$",str);
  865. }
  866. /**
  867. *〈验证IP〉
  868. *@paramstr待验证字符串
  869. *@parampropprop
  870. *@returnboolean
  871. */
  872. protectedstaticbooleancheckIP(Stringstr)
  873. {
  874. if(Util.isEmpty(str))
  875. {
  876. returntrue;
  877. }
  878. Stringpattern="^(?:[01]?\\d\\d?|2[0-4]\\d|25[0-5])(\\.(?:[01]?\\d\\d?|2[0-4]\\d|25[0-5])){3}$";
  879. returnUtil.test(pattern,str);
  880. }
  881. /**
  882. *〈验证日期〉
  883. *@paramstr待验证字符串
  884. *@parampropprop
  885. *@returnboolean
  886. */
  887. protectedstaticbooleandate(Stringstr)
  888. {
  889. Stringpattern="";
  890. if(Util.isEmpty(str))
  891. {
  892. returntrue;
  893. }
  894. SimpleDateFormatformat=newSimpleDateFormat(pattern);
  895. try
  896. {
  897. format.parse(str);
  898. }
  899. catch(ParseExceptione)
  900. {
  901. returnfalse;
  902. }
  903. returntrue;
  904. }
  905. /**
  906. *〈验证邮编〉
  907. *@paramstr待验证字符串
  908. *@parampropprop
  909. *@returnboolean
  910. */
  911. protectedstaticbooleanpostalCode(Stringstr)
  912. {
  913. if(Util.isEmpty(str))
  914. {
  915. returntrue;
  916. }
  917. //暂未实现
  918. returntrue;
  919. }
  920. /**
  921. *〈验证EMAIL〉
  922. *@paramstr待验证字符串
  923. *@parampropprop
  924. *@returnboolean
  925. */
  926. protectedstaticbooleanemail(Stringstr)
  927. {
  928. if(Util.isEmpty(str))
  929. {
  930. returntrue;
  931. }
  932. returnUtil.test("^[a-zA-Z0-9_.]+@\\w+\\-?\\w+(\\.\\w+)$",str);
  933. }
  934. /*
  935. *〈验证身份证〉
  936. *@paramstr待验证字符串
  937. *@parampropprop
  938. *@returnboolean
  939. */
  940. /*publicstaticbooleancheckID(Stringstr)
  941. {
  942. if(Util.isEmpty(str))
  943. {
  944. returntrue;
  945. }
  946. if(Util.test("^\\d{17}[xX\\d]$",str))
  947. {
  948. returncheckID18(str);
  949. }
  950. elseif(Util.test("^\\d{15}$",str))
  951. {
  952. returncheckID15(str);
  953. }
  954. else
  955. {
  956. returnfalse;
  957. }
  958. }*/
  959. /*privatestaticbooleancheckID18(Stringstr)
  960. {
  961. Stringyear=str.substring(6,2);
  962. Stringmonth=str.substring(8,2);
  963. Stringday=str.substring(10,2);
  964. if(!Util.test("^\\d\\d$",year))
  965. {
  966. returnfalse;
  967. }
  968. if(!isMonth(month))
  969. {
  970. returnfalse;
  971. }
  972. if(!isDay(day))
  973. {
  974. returnfalse;
  975. }
  976. if(Util.parseInt(month)==2&&Util.parseInt(day)>FEB_DAYES)
  977. {
  978. returnfalse;
  979. }
  980. returntrue;
  981. }
  982. privatestaticbooleancheckID15(Stringstr)
  983. {
  984. Stringyear=str.substring(ID15_YEAR,4);
  985. Stringmonth=str.substring(ID15_MONTH,2);
  986. Stringday=str.substring(ID15_DAY,2);
  987. if(!isYear(year))
  988. {
  989. returnfalse;
  990. }
  991. if(!isMonth(month))
  992. {
  993. returnfalse;
  994. }
  995. if(!isDay(day))
  996. {
  997. returnfalse;
  998. }
  999. if(Util.parseInt(month)==2&&Util.parseInt(day)>FEB_DAYES)
  1000. {
  1001. returnfalse;
  1002. }
  1003. returntrue;
  1004. }*/
  1005. /**
  1006. *〈验证必须为数字〉
  1007. *@paramstr待验证字符串
  1008. *@parampropprop
  1009. *@returnboolean
  1010. */
  1011. protectedstaticbooleanmustNum(Stringstr)
  1012. {
  1013. if(Util.isEmpty(str))
  1014. {
  1015. returntrue;
  1016. }
  1017. returnUtil.test("^\\d+$",str);
  1018. }
  1019. /**
  1020. *〈体重验证〉
  1021. *@paramstr待验证字符串
  1022. *@parampropprop
  1023. *@returnboolean
  1024. */
  1025. protectedstaticbooleanavoirdupois(Stringstr)
  1026. {
  1027. if(Util.isEmpty(str))
  1028. {
  1029. returntrue;
  1030. }
  1031. returnUtil.test("^([3-9]\\d|1\\d\\d)(\\.\\d{0,2})?$",str);
  1032. }
  1033. /**
  1034. *〈验证身高〉
  1035. *@paramstr待验证字符串
  1036. *@parampropprop
  1037. *@returnboolean
  1038. */
  1039. protectedstaticbooleanstature(Stringstr)
  1040. {
  1041. if(Util.isEmpty(str))
  1042. {
  1043. returntrue;
  1044. }
  1045. returnUtil.test("^([89]\\d|[12]\\d\\d)(\\.\\d{0,2})?$",str);
  1046. }
  1047. /**
  1048. *〈验证年龄〉
  1049. *@paramstr待验证字符串
  1050. *@parampropprop
  1051. *@returnboolean
  1052. */
  1053. protectedstaticbooleanage(Stringstr)
  1054. {
  1055. if(Util.isEmpty(str))
  1056. {
  1057. returntrue;
  1058. }
  1059. returnUtil.test("^([1-9]|[1-9]\\d?)$",str);
  1060. }
  1061. /**
  1062. *〈验证鞋码〉
  1063. *@paramstr待验证字符串
  1064. *@parampropprop
  1065. *@returnboolean
  1066. */
  1067. protectedstaticbooleanshoeSize(Stringstr)
  1068. {
  1069. if(Util.isEmpty(str))
  1070. {
  1071. returntrue;
  1072. }
  1073. returnUtil.test("(^[34]\\d$)|(^50$)",str);
  1074. }
  1075. /**
  1076. *判断是否为数字,包含浮点型
  1077. *@paramstr
  1078. *@return
  1079. */
  1080. publicstaticbooleancheckNum(Stringstr)
  1081. {
  1082. if(Util.isEmpty(str))
  1083. {
  1084. returntrue;
  1085. }
  1086. returnUtil.test("^\\d+(\\.\\d+){0,1}$",str);
  1087. }
  1088. publicstaticvoidmain(String[]args){
  1089. System.out.println(checkNum("12"));
  1090. }
  1091. }
分享到:
评论

相关推荐

    一些工具类的整合

    在工具类中,我们可以封装这两个类的方法,方便在处理URL时直接调用。 再来说说网络辅助工具类,这类工具通常包括处理HTTP请求、响应、网络状态检测等功能。例如,你可以创建一个工具类,提供异步或同步的HTTP请求...

    java汉字转化为拼音的工具类

    Java是一种广泛使用的编程语言,它的灵活性和强大的功能使其在各种领域都有着...无论是在日常开发还是特定项目中,它都能提供极大的便利性。只需简单几步,就可以将汉字转化为拼音,进一步提升程序的功能性和适用性。

    文件操作工具类

    本文将详细讲解一个名为"文件操作工具类"的实用程序,它提供了一系列方法来简化文件的读取、写入、追加等日常操作。 文件I/O(Input/Output)是计算机科学中用于在内存与磁盘之间交换数据的技术。在Java中,我们...

    xcr常用的工具类

    在IT行业中,工具类是程序员日常开发中不可或缺的一部分。它们通常包含了各种实用的功能,可以极大地提高开发效率。"xcr常用的工具类"这个主题涵盖了多种工具类,这些类可能包括字符串处理、日期时间操作、网络请求...

    工具类

    在IT行业中,工具类是程序员日常开发中不可或缺的一部分。这些工具类通常包含了各种实用方法,以简化特定任务的处理,提高代码的复用性。在这个压缩包中,我们看到几个关键的Java工具类,分别是`POIExcelUtils.java`...

    安卓公共工具类安卓公共工具类

    "安卓公共工具类安卓公共工具类"是一个集合了多种实用工具类的项目,提供了丰富的功能,帮助开发者解决日常开发中的常见问题。这个压缩包文件名为"android-common-master",暗示着这是一个主版本的开源项目,可能...

    工具类,日期处理,压缩等

    在IT行业中,工具类库是开发人员日常工作中不可或缺的一部分,它们提供了一系列通用的功能,以便于开发者更高效地完成任务。本篇文章将详细讲解标题和描述中提到的几个关键知识点:工具类、日期处理以及压缩技术,...

    Excel文件操作工具类,包括读、写、合并等功能

    总结,这个“Excel文件操作工具类”是Java开发中的一个实用组件,它简化了与Excel文件的交互,提供了一套完整的解决方案,包括读、写和合并功能。结合Apache POI库,它可以帮助开发者轻松处理Excel数据,提高工作...

    json工具类,java日期转换,字符串转换等各种工具类

    在Java编程中,工具类(Util Classes)是程序员日常工作中不可或缺的部分,它们提供了一系列静态方法,用于执行常见的任务,如JSON解析、日期处理、字符串操作等。以下是对标题和描述中涉及的知识点的详细说明: 1....

    Android常用工具类

    下面我们将详细探讨这些工具类中包含的知识点。 1. **字符串处理工具类**: - 字符串格式化:提供`format()`方法,用于将占位符替换为实际值,如`String.format("%s %d", "Hello", 2022)`。 - 验证:包含`isBlank...

    日期工具类,包括各种日期之间的转换

    通过使用此类,可以大大简化日常开发中涉及日期操作的工作量。 ### 二、关键常量与变量定义 #### 1. 常量定义 - `DATE_MILLIS`: 一天的毫秒数(24小时 * 60分钟 * 60秒 * 1000毫秒)。 - `DAY_HAVINTERVAL`: 日期...

    java常用工具类

    在实际开发中,这些工具类常常被整合到一个名为Utils的公共库中,方便项目中的各个模块共享。通过合理地使用这些工具类,可以提高代码的可维护性和一致性,减少重复工作,从而提升整体项目的开发效率和质量。 总之...

    集成了各个常用控件、工具类、Json数据解析、网络请求等,并有使用列子

    【标题】中的知识点主要涉及到Android应用开发中的几个关键部分,包括控件的使用、工具类的集成、Json数据解析以及网络请求。这些都是Android开发者在日常工作中经常会遇到的技术点。 1. **常用控件**:在Android...

    适用编码转化工具

    标题中的“适用编码转化工具”指的是这类软件,其核心功能是将不同类型的字符编码进行转换,以确保数据在不同的系统或应用间正确无误地传递。描述中提到的“可以方便的编辑各种网页”,暗示了这款工具可能具备网页源...

    软件开发工具实验-数制转化.rar

    在IT行业中,软件开发工具是程序员日常工作中不可或缺的一部分。本实验——“软件开发工具实验-数制转化”旨在深入理解并实践如何利用编程语言进行数制转换,特别是针对二进制、八进制和十六进制这三种常见的非十...

    用于简化数据函数promises等工作的JavaScript实用工具类

    总之,"TinkoffCreditSystems-utils.js-d06e5d8"提供的JavaScript实用工具类,是一个集合了Promise操作、数据处理和函数编程辅助功能的库,旨在简化开发者的日常工作,提高代码质量,减少错误,并提升开发效率。...

    word、html 转化成chm工具

    在使用这类工具时,用户应注意兼容性问题,确保Word版本和HTML编码与转化工具相匹配。同时,对于HTML到CHM的转化,可能需要处理JavaScript、Flash等非纯HTML元素,因为CHM格式本身并不支持这些动态内容。此外,安全...

    学生成绩管理系统 visualstudio开发工具

    开发工具方面,选择了Microsoft的Visual Studio,它提供了丰富的面向对象的开发工具,特别是数据窗口功能,能够简化数据库操作,快速构建系统原型。在系统开发过程中,遵循了需求迭代的过程,即先建立基础的系统应用...

    FastJsonUtil工具类

    以下是FastJsonUtil工具类中涉及的关键知识点: 1. FastJson库简介: FastJson是由阿里巴巴开源的一个Java库,它提供了高性能的序列化和反序列化能力。它可以将Java对象转化为JSON格式的字符串,同时也可以将JSON...

Global site tag (gtag.js) - Google Analytics