四时宝库

程序员的知识宝库

客服电话被打爆,就因没用trim()(客服电话被投诉怎么办)

一、前言

Java String中的trim()方法时常在代码中看到,而我们是否能正确使用昵?对于新手来说我感觉你会忽视它,没有把它用好,导致各种坑。以下深入分析一下trim()。


二、作用

trim()的作用是去掉字符串两端的多余的空格,注意,是两端的空格,且无论两端的空格有多少个都会去掉,当然,中间的那些空格不会被去掉。看下下面的输出就知道了:

/**
 * @author 米兜
 * @description
 * @date 2020/6/25 23:06
 * @modified by
 */
public class Trim {
    public static void main(String[] args) {
        String trim="  a b c  ";
        System.out.println(trim.trim());
    }
}
a b c

Process finished with exit code 0

三、源码

public String trim() {
        int len = value.length;   /* 拿到字符串长度 */
        int st = 0;
        char[] val = value;    /* avoid getfield opcode */

        while ((st < len) && (val[st] <= ' ')) {
            st++;
        }
        while ((st < len) && (val[len - 1] <= ' ')) {
            len--;
        }
        return ((st > 0) || (len < value.length)) ? substring(st, len) : this;
    }

四、坑

(1)以为是String,就trim(),却忽视了空指针,代码如下:

/**
 * @author 米兜
 * @description
 * @date 2020/6/25 23:06
 * @modified by
 */
public class Trim {
    public static void main(String[] args) {
        String trim=null;
        System.out.println(trim.trim());
    }
}
Exception in thread "main" java.lang.NullPointerException
  at Trim.main(Trim.java:10)

Process finished with exit code 1

所以在使用trim(),需要判断一下字符串是否可能出现null值,以免翻车。


(2)明明用户觉得输入正确,但是系统一直提示"***不存在",然后你对比数据库数据发现也是正常,但是写个sql查询,却查询不到结果,此时你怀疑了人生!

这个问题出现,很显然就是没有对用户数据进行空格判断,用户在录入时没注意带了一个空格过来,这种问题看似虽小,但很有可能会导致"一锅老鼠屎,坏了一锅粥",所以理应考虑周全。这种问题避免,可以使用trim()逐个判断,也可以对系统请求参数做一个校验。


五、总结

"前人挖坑,后人背锅",为了避免你是那个"前人",所以开发时得严谨、谨慎、周全、仔细、负责

发表评论:

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言
    友情链接