福州企业网站开发,windows优化大师,深圳网站制作大运软件小镇,哈尔滨建设银行网站[java中判断字符串是否为数字的三种方法 1用JAVA自带的函数 public static boolean isNumeric(String str){ for (int i str.length();--i0;){ if (!CharactJava 判断字符串是否为空的三种方法与性能分析Java编程过程中经常会涉及到判断空字符串的问题#x…[java中判断字符串是否为数字的三种方法 1用JAVA自带的函数 public static boolean isNumeric(String str){ for (int i str.length();--i0;){ if (!CharactJava 判断字符串是否为空的三种方法与性能分析Java编程过程中经常会涉及到判断空字符串的问题对于我而言经常使用的是equals()方法代码如下if(target ! null !.equals(target)){System.out.println(target字符串不为空);}碰巧昨天见到一篇关于判断Java空字符串三种方法的比较突然觉得自己在平时里做的还不够深入没有对代码的性能进行极致优化自己要反思与提高。原文提到的三种方法分别是我使用的equals()、length()和JDK6之后的 isEmpty()在性能上原文分析结果是equals()性能几乎是length()的3.5倍这个我不敢苟同我实际测试的结果如下equals use time: 110mslength use time: 78ms[以下是 Java 判断字符串是否为空的三种方法. 方法一: 最多人使用的一个方法, 直观, 方便, 但效率很低.方法二: 比较字符串长度, 效率高. 方法三: Java SE 6.0 才开始提供的还没到2倍于是乎我查看了String的源码public int length() {return count;}public boolean equals(Object anObject) {if (this anObject) {return true;}if (anObject instanceof String) {String anotherString (String)anObject;int n count;if (n anotherString.count) {char v1[] value;char v2[] anotherString.value;int i offset;int j anotherString.offset;while (n-- ! 0) {if (v1[i] ! v2[j])return false;}return true;}}通过源码我很容易发现length()的效率要高于equals()length()直接返回String对象的Count属性而equals()需要先进行判断目标比对对象的类型然后再进行其它操作同时还要遍历String对象的每一个char查看是否相同。同时原文提到的JDK6提供的String .isEmpty()方法我没有安装JDK6所以只能替代行的查看了Commons-lang-2.6内StriingUtils的该方法我相信JDK6的源码与它应该是相同的源码如下public static boolean isEmpty(String str){return (str null) || (str.length() 0);}可见isEmpty()同样也使用了length()方法呵呵~只能说apache不傻。综上我们可以清晰的得出三者性能上的优劣。equals()