博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
源码分析八(org.springframework.util包之StringUtils类))
阅读量:7097 次
发布时间:2019-06-28

本文共 5023 字,大约阅读时间需要 16 分钟。

一:spring框架util包中的StringUtils类主要是处理关于字符串

的功能方法,下面直接结合代码分析:

//判断字符串是否为空,如果为nul或者""则返回true,否则返回falsepublic static boolean isEmpty(Object str)    {        return str == null || "".equals(str);    }

  

//判断字符串是否有长度,不等于null同时长度大于0,则为true//这里重载两个hasLength方法,其中CharSequence是String的父类,是接口public static boolean hasLength(CharSequence str)    {        return str != null && str.length() > 0;    }    public static boolean hasLength(String str)    {        return hasLength(((CharSequence) (str)));    }

  

//如果为空则直接返回false,如果字符串中有一个不是空白,则表示//有内容,返回true public static boolean hasText(CharSequence str)    {        if(!hasLength(str))            return false;        int strLen = str.length();        //遍历字符序列,如果其中有一个不是空白,则返回true        for(int i = 0; i < strLen; i++)            if(!Character.isWhitespace(str.charAt(i)))                return true;        return false;    }    public static boolean hasText(String str)    {        return hasText(((CharSequence) (str)));    }

  

//判断字符串是否包含空白,如果为空则直接返回false,,遍历字符序列,如果其中//有一个字符是空白,则返回true,如果都不是,返回falsepublic static boolean containsWhitespace(CharSequence str)    {        if(!hasLength(str))            return false;        int strLen = str.length();        for(int i = 0; i < strLen; i++)            if(Character.isWhitespace(str.charAt(i)))                return true;        return false;    }    public static boolean containsWhitespace(String str)    {        return containsWhitespace(((CharSequence) (str)));    }

  

//去除字符串前后的空白public static String trimWhitespace(String str)    {        if(!hasLength(str))            return str;        StringBuilder sb;        //去除字符串前导空白        for(sb = new StringBuilder(str); sb.length() > 0 && Character.isWhitespace(sb.charAt(0)); sb.deleteCharAt(0));        //去除字符串后导空白        for(; sb.length() > 0 && Character.isWhitespace(sb.charAt(sb.length() - 1)); sb.deleteCharAt(sb.length() - 1));        return sb.toString();    }

  

//去除字符串所有空白public static String trimAllWhitespace(String str)    {        if(!hasLength(str))            return str;        StringBuilder sb = new StringBuilder(str);        //从第一个字符开始判断,是否为空白,如果是则删除,如果不是则index加1        //判断第二个,然后一直到sb.length=index,则跳出循环        for(int index = 0; sb.length() > index;)            if(Character.isWhitespace(sb.charAt(index)))                sb.deleteCharAt(index);            else                index++;        return sb.toString();    }

  

//去除前导空白,只取空白的前一部分 public static String trimLeadingWhitespace(String str)    {        if(!hasLength(str))            return str;        StringBuilder sb;        //去除前导空白        for(sb = new StringBuilder(str); sb.length() > 0 && Character.isWhitespace(sb.charAt(0)); sb.deleteCharAt(0));        return sb.toString();    }

  

//去除后导空白,取去除空白后一部分 public static String trimTrailingWhitespace(String str)    {        if(!hasLength(str))            return str;        StringBuilder sb;        //去除后导空白        for(sb = new StringBuilder(str); sb.length() > 0 && Character.isWhitespace(sb.charAt(sb.length() - 1)); sb.deleteCharAt(sb.length() - 1));        return sb.toString();    }

  

//删除前导为leadingCharacter的字符 public static String trimLeadingCharacter(String str, char leadingCharacter)    {        if(!hasLength(str))            return str;        StringBuilder sb;        //只要前导是指定字符则删除        for(sb = new StringBuilder(str); sb.length() > 0 && sb.charAt(0) == leadingCharacter; sb.deleteCharAt(0));        return sb.toString();    }

  

//删除后导字符trailingCharacter public static String trimTrailingCharacter(String str, char trailingCharacter)    {        if(!hasLength(str))            return str;        StringBuilder sb;        //只要后导是指定字符则删除        for(sb = new StringBuilder(str); sb.length() > 0 && sb.charAt(sb.length() - 1) == trailingCharacter; sb.deleteCharAt(sb.length() - 1));        return sb.toString();    }

  

//忽略大小写,判断字符串是否已prefix开始 public static boolean startsWithIgnoreCase(String str, String prefix)    {         //如果源字符串str或者前缀字符串prefix为null,则返回false        if(str == null || prefix == null)            return false;        //如果str以prefix开始,return true        if(str.startsWith(prefix))            return true;       //如果源字符串的长度小于prefix的长度,返回false        if(str.length() < prefix.length())        {            return false;        } else        {            将源字符串prefix长度转换为小写,前缀字符串也转换为小写,比较是否相等            String lcStr = str.substring(0, prefix.length()).toLowerCase();            String lcPrefix = prefix.toLowerCase();            return lcStr.equals(lcPrefix);        }    }

  

//忽略大小写,判断源字符串str是否以suffix结尾,处理逻辑类似上一个方法 public static boolean endsWithIgnoreCase(String str, String suffix)    {        if(str == null || suffix == null)            return false;        if(str.endsWith(suffix))            return true;        if(str.length() < suffix.length())        {            return false;        } else        {            String lcStr = str.substring(str.length() - suffix.length()).toLowerCase();            String lcSuffix = suffix.toLowerCase();            return lcStr.equals(lcSuffix);        }    }

  

 

转载地址:http://rmhql.baihongyu.com/

你可能感兴趣的文章
走进 AQS 瞧一瞧看一看
查看>>
NO18 linux开机自启动设置--开机流程--中文乱码--查看行数
查看>>
Java的四种内部类
查看>>
10-16C#for...循环语句(2)
查看>>
CentOS查看软件源提供的软件版本命令
查看>>
caffe 学习记录1及网络结构
查看>>
html5学习笔记——html新增属性(四)
查看>>
收藏的链接
查看>>
【原创】5月份月会总结
查看>>
手机号码归属地查询
查看>>
IO和socket编程
查看>>
Docker结合Jenkins构建持续集成环境
查看>>
一些Android经验
查看>>
Java设计模式-适配器模式
查看>>
求任意数阶乘最后一位
查看>>
android 循环操作
查看>>
Promise & Deferred objects in JavaScript Pt.1: Theory and Semantics.
查看>>
Joyoi花店橱窗(原tyvj1124)
查看>>
JavaMail基础案例开发
查看>>
被称"硬盘杀手"的几个win7系统服务如何关闭(转)
查看>>