java 判断字符串为空

来源:互联网 发布:巨石监控分析软件 编辑:程序博客网 时间:2024/05/21 09:32

以下是java 判断字符串是否为空的四种方法:

方法一: 最多人使用的一个方法, 直观, 方便, 但效率很低:

                                    if(s == null ||"".equals(s));
方法二: 比较字符串长度, 效率高, 是我知道的最好一个方法:

                      if(s == null || s.length() <= 0);
方法三: Java SE 6.0 才开始提供的方法, 效率和方法二几乎相等, 但出于兼容性考虑, 推荐使用方法二.

                     if(s == null || s.isEmpty());

方法四: 这是一种比较直观,简便的方法,而且效率也非常的高,与方法二、三的效率差不多:

                     if (s == null || s == "");

 

注意:s == null 是有必要存在的.

  如果 String 类型为null, 而去进行 equals(String) 或 length() 等操作会抛出java.lang.NullPointerException.

  并且s==null 的顺序必须出现在前面,不然同样会抛出java.lang.NullPointerException.

  如下Java代码:

  String str = null;

  if(str.equals("") || str= == null){//会抛出异常

            System.out.println("success");

  }

  // "".equals(str);后置确保不会遇null报错



对于字符串处理Android为我们提供了一个简单实用的TextUtils类,如果处理比较简单的内容不用去思考正则表达式不妨试试这个在android.text.TextUtils的类,主要的功能如下:

是否为空字符 boolean android.text.TextUtils.isEmpty(CharSequence str)

拼接字符串 String android.text.TextUtils.join(CharSequence delimiter, Object[] tokens)

拆分字符串 String[] android.text.TextUtils.split(String text, String expression)

拆分字符串使用正则 String[] android.text.TextUtils.split(String text, Pattern pattern)

确定大小写是否有效在当前位置的文本 int android.text.TextUtils.getCapsMode(CharSequence cs, int off, int reqModes)

使用HTML编码这个字符串 String android.text.TextUtils.htmlEncode(String s)

另外,String[] android.text.TextUtils.split(String text, String expression)中的expression较特殊,如果采用

<code><span class="pln"></span><span class="typ">TextUtils</span><span class="pun">.</span><span class="pln">split</span><span class="pun">(</span><span class="pln">someString</span><span class="pun">,</span><span class="pln"> </span><span class="str">"-"</span><span class="pun">);</span></code>
来分割someString的话返回的将是错误结果,正确的用法应该是
<code><span class="pln"></span><span class="typ">TextUtils</span><span class="pun">.</span><span class="pln">split</span><span class="pun">(</span><span class="pln">line</span><span class="pun">,</span><span class="pln"> </span><span class="str">",|\\-"</span><span class="pun">);</span></code>
<span style="color: rgb(34, 34, 34); font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 13px; line-height: 22px;">你的问题应该是:</span><br style="color: rgb(34, 34, 34); font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 13px; line-height: 22px;" /><span style="color: rgb(34, 34, 34); font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 13px; line-height: 22px;">何时不适用用String的isEmpty判断字符串是否为空?</span><br style="color: rgb(34, 34, 34); font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 13px; line-height: 22px;" /><br style="color: rgb(34, 34, 34); font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 13px; line-height: 22px;" /><span style="color: rgb(34, 34, 34); font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 13px; line-height: 22px;">翻一下JDK的实现就会知道:</span><img src="http://pic4.zhimg.com/56136d15492a9c4960650b0d5410ff17_b.jpg" data-rawwidth="361" data-rawheight="105" class="content_image lazy" width="361" data-actualsrc="http://pic4.zhimg.com/56136d15492a9c4960650b0d5410ff17_b.jpg" style="border: 0px none; margin: 6px 0px; display: block; overflow: hidden; max-width: 100%; height: 105px; color: rgb(34, 34, 34); font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 13px; line-height: 22px; width: 361px;" alt="" /><img src="http://pic2.zhimg.com/57fe8b330a3e84ba39cd4a952736a1dd_b.jpg" data-rawwidth="322" data-rawheight="210" class="content_image lazy" width="322" data-actualsrc="http://pic2.zhimg.com/57fe8b330a3e84ba39cd4a952736a1dd_b.jpg" style="border: 0px none; margin: 6px 0px; display: block; overflow: hidden; max-width: 100%; height: 210px; color: rgb(34, 34, 34); font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 13px; line-height: 22px; width: 322px;" alt="" /><span style="color: rgb(34, 34, 34); font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 13px; line-height: 22px;">其实isEmpty完全等同于string.length()==0</span><br style="color: rgb(34, 34, 34); font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 13px; line-height: 22px;" /><br style="color: rgb(34, 34, 34); font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 13px; line-height: 22px;" /><span style="color: rgb(34, 34, 34); font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 13px; line-height: 22px;">如果String本身是null,那么使用string.isEmpty()会报空指针异常(NullPointerException)</span><br style="color: rgb(34, 34, 34); font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 13px; line-height: 22px;" /><span style="color: rgb(34, 34, 34); font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 13px; line-height: 22px;">判断一个String为空的最安全的方法,还是 string ==null || string.isEmpty()</span>

0 0
原创粉丝点击