`
cry615
  • 浏览: 153492 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

java判断String是否为空探究

    博客分类:
  • java
 
阅读更多

http://blog.csdn.net/lubiaopan/article/details/4720862

追求高质量的代码的同时,我们多多少少就得对java代码探究了,优质的,高性能的代码,无疑也是一个合格程序员的必备所学!

链接里已对String的判断做了详尽解释,如果单纯的比较String的为空或null的话,无疑是if(x != null && s.length() > 0),JDK6SE的string类的isEmpty()也是基于length()判断的,所以两者几乎没什么区别;

还有一种if(x != null && !"".equals(x)),之前一直用的这种,个人也倾向这种,但性能效率没上一种好,以后打算换上一种了,包括开源的那些框架源码也是第一种方法来判断的;

2.第三方的jar包commons-lang-2.3.jar 的StringUtils类

/**
     * <p>Checks if a String is whitespace, empty ("") or null.</p>
     *
     * <pre>
     * StringUtils.isBlank(null)      = true
     * StringUtils.isBlank("")        = true
     * StringUtils.isBlank(" ")       = true
     * StringUtils.isBlank("bob")     = false
     * StringUtils.isBlank("  bob  ") = false
     * </pre>
     *
     * @param str  the String to check, may be null
     * @return <code>true</code> if the String is null, empty or whitespace
     * @since 2.0
     */
    public static boolean isBlank(String str) {
        int strLen;
        if (str == null || (strLen = str.length()) == 0) {
            return true;
        }
        for (int i = 0; i < strLen; i++) {
            if ((Character.isWhitespace(str.charAt(i)) == false)) {
                return false;
            }
        }
        return true;
    }
性能上较第一种还是差些,应该多了一些判断,性能影响大的是那个for循环,但此方法有了更强的逻辑,对空的字符串的处理。如果业务需要也是不错选择!

 

个人的一些小结,希望能共同学习!

分享到:
评论

相关推荐

    Java模拟测验+答案编程资料JAVA-内存模型编程资料java模拟测验型及作业编程资料java模拟测验库编程资料java判断题

    ### Java判断题 - **判断题示例**:给出一些Java相关的判断题,让学生判断其正误,例如关于类的继承、方法的重写、字符串操作等题目,旨在考察学生对Java基础知识的理解程度。 ### 总结 通过以上梳理,我们可以...

    33 SpEL String应用示例及背后原理探究慕课专栏(1)1

    例如,表达式 `new String('hello world').toUpperCase()` 在 SpEL 中会被解析为包含 `ConstructorReference` 和 `MethodReference` 节点的 AST。`ConstructorReference` 用于创建新的 `String` 对象,而 `Method...

    Java An Introduction to Problem Solving and Programming

    - `while`:在每次循环前判断条件是否成立。 - `do-while`:至少执行一次循环体,然后判断条件。 - `for`:提供初始化、条件判断和迭代的完整结构。 - **选择建议**: - 当循环次数已知时使用`for`。 - 当条件...

    Java 实验内容

    3. **Java Application编写**:使用文本编辑器或IDE(如Eclipse、IntelliJ IDEA)编写程序,保存为.java文件。例如,`public class HelloWorld { public static void main(String[] args) { System.out.println(...

    工程硕士学位论文 基于Android+HTML5的移动Web项目高效开发探究

    昆山工业技术研究院着眼于为委托用户和质检机构搭建良好的沟通桥梁,免去目前市场业务中企业用户需要实地地并频繁地与检测机构沟通,从而提出自己的委托乃至下委托单、等待检测报告等,设计并研发了市场上首款提供...

    Spring源代码解析(一):IOC容器.doc

    3. `containsBean(String name)`:判断容器中是否存在指定名称的Bean。 4. `isSingleton(String name)`:检查给定Bean是否是单例模式。如果是单例,容器只会创建一次实例,并在后续请求时返回相同的对象。 5. `...

    jdk源码和jdk7开发帮助文档(api)

    通过结合Java API 1.7中文版和JDK 7源码,开发者不仅可以掌握Java 7的使用技巧,还能深入探究其内部机制,从而提升编程技能,解决复杂问题。无论是初学者还是经验丰富的开发者,都应该充分利用这些资源来提升自己的...

    水仙花_水仙花_

    # 判断是否为水仙花数 if num == sum_of_cubes: print(num) ``` 这段代码通过循环遍历100到999,将每个数分解成百位、十位和个位,然后计算这三个数字的立方和,最后比较这个和是否等于原数。如果相等,则打印出...

    Anagram-Game:(2015年7月-)创建一个字谜游戏,该游戏将用于收集有关协作创造力的数据

    例如,可以使用`toCharArray()`将字符串转化为字符数组,然后通过排序和比较这些数组来判断两个单词是否是字谜。 此外,为了收集数据,项目可能包含了用户行为追踪和数据分析的组件。在Java中,可以利用日志框架如...

    MyBatis3 中文版用户指南手册

    - **if**:根据条件判断是否包含某部分 SQL。 - **choose**、**when**、**otherwise**:类似于 switch-case 语句。 - **trim**、**where**、**set**:用于优化生成的 SQL 语句。 - **foreach**:用于循环遍历集合。 ...

    MyBatis-3-User-Guide-Simplified-Chinese

    根据条件判断是否包含某个 SQL 子句。 **示例**: ```xml SELECT * FROM USERS != null"&gt; AND NAME = #{name} != null"&gt; AND EMAIL = #{email} ``` ##### 9.2 choose, when, otherwise 类似 ...

    C# 面向对象程序设计

    - **方法的定义**:如`public void SayHello(string name)`定义了一个名为`SayHello`的方法,接受一个字符串参数`name`。 - **项目2:计算器客户端与计算功能分离**:将界面与逻辑分离,客户端负责接收用户输入并...

Global site tag (gtag.js) - Google Analytics