一、转换

StringUtils中涉及大小写转换以及判断字符串大小写的方法如下:

1)StringUtils.capitalize(String str)

2)StringUtils.uncapitalize(String str)

3)StringUtils.upperCase(String str)

4)StringUtils.upperCase(String str,Locale locale)

5)StringUtils.lowerCase(String str)

6)StringUtils.lowerCase(String str,Locale locale)

7)StringUtils.swapCase(String str)

8)StringUtils.isAllUpperCase(CharSequence cs)

9)StringUtils.isAllLowerCase(CharSequence cs)

(1)字符串首字母大小写转换

StringUtils.capitalize(null)); // null (注意此处不会报异常)

StringUtils.capitalize("china")); // China (首字母转大写)

StringUtils.uncapitalize(null)); // null

StringUtils.uncapitalize("CHINA")); // cHINA (首字母转小写)

(2)字符串整体大小写转换

StringUtils.upperCase(null)); // null

StringUtils.upperCase("china")); // CHINA (全部转为大写)

StringUtils.upperCase("china", Locale.ENGLISH)); // CHINA (按照指定规则转换为大写)

StringUtils.lowerCase(null)); // null

StringUtils.lowerCase("CHINA")); // china (全部转换为小写)

StringUtils.lowerCase("CHINA", Locale.ENGLISH)); // china (按照指定转换规则转换为小写)

(3)字符串大小写互换

StringUtils.swapCase(null)); // null

StringUtils.swapCase("chINA")); // CHina

(4)判断字符串是否全部是大写或小写(空或空白符均为false)

StringUtils.isAllUpperCase(null)); // false

StringUtils.isAllUpperCase("")); // false

StringUtils.isAllUpperCase(" ")); // false

StringUtils.isAllUpperCase("CHINA")); // true

StringUtils.isAllLowerCase(null)); // false

StringUtils.isAllLowerCase("")); // false

StringUtils.isAllLowerCase(" ")); // false

StringUtils.isAllLowerCase("china")); // true

二、移除

从字符串中移除匹配的字符或字符序列,如果要移除的字符或字符序列在字符串中不存在,即无匹配,则不进行移除

1)StringUtils.remove(String str, char remove)

2)StringUtils.remove(String str, String remove)

3)StringUtils.removeStart(String str, String remove)

4)StringUtils.removeStartIgnoreCase(String str, String remove)

5)StringUtils.removeEnd(String str, String remove)

6)StringUtils.removeEndIgnoreCase(String str, String remove)

7)StringUtils.deleteWhitespace(String str)

(1)移除单个字符

StringUtils.remove(null, 'a')); // null (注意此处及下一行为null)

StringUtils.remove('china', null) // china

StringUtils.remove("china", 'i')); // chna

StringUtils.remove("china", 'b')); // china (如果要移除的字符不存在,则返回原字符串)

(2)移除指定字符序列

StringUtils.remove("china", "in")); // cha

StringUtils.remove("china", "nin")); // china

(3)移除开头匹配的字符序列

StringUtils.removeStart("china", "ch")); // ina

StringUtils.removeStartIgnoreCase("china", "CHI")); // na (忽略大小写)

(4)移除结尾匹配的字符序列

StringUtils.removeEnd("china", "na")); // chi

StringUtils.removeEndIgnoreCase("china", "NA")); // chi (忽略大小写)

(5)移除空白字符

StringUtils.deleteWhitespace(null)); //null

StringUtils.deleteWhitespace(" c h i\tn\ra")); // china

三、替换

StringUtils中常用的替换方法有如下几种

1)replace(String text, String searchString, String replacement)

2)replace(String text, String searchString, String replacement, int max)

3)replaceChars(String str, char searchChar, char replaceChar)

4)replaceChars(String str, String searchChars, String replaceChars)

5)replaceOnce(String text, String searchString, String replacement)

6)overlay(String str,String overlay,int start,int end)

7)replaceEach(String text, String[] searchList, String[] replacementList)

8)replaceEachRepeatedly(String text, String[] searchList, String[]replacementList)

需要注意的是,若被替换的字符串为null,或者被替换的字符或字符序列为null,又或者替换的字符或字符序列为null,那么此次替换都会被忽略,返回原字符串

(1)替换单个字符或字符序列

(a)replace方法

replace方法可以替换单个字符序列

StringUtils.replace("china", null, "z")); // china (此处被替换字符序列为null,因此替换会被忽略,返回原字符串)

StringUtils.replace("china", "c", null)); // china (此处替换字符序列为null,因此替换也被忽略,返回原字符串)

StringUtils.replace("china", "a", "ese")); // chinese

StringUtils.replace("china", "a", "")); // chin

replace方法还可以指定最大替换的个数

StringUtils.replace("aabaaa", "a", "z", 0)); // aabaaa (0表示替换的个数为0,也就是不替换)

StringUtils.replace("aabaaa", "a", "z", 1)); // zabaaa (1表示最多替换1个)

StringUtils.replace("aabaaa", "a", "z", 2)); // zzbaaa (2表示最多替换2个)

StringUtils.replace("aabaaa", "a", "z", 3)); // zzbzaa (3表示最多替换3个)

StringUtils.replace("aabaaa", "a", "z", -1)); // zzbzaa (-1表示全部替换)

(b)replaceChars方法

replaceChars方法可以替换单个字符或者单个字符序列

StringUtils.replaceChars("china", 'a', 'z')); // chinz

StringUtils.replaceChars("china", "a", "z")); // chinz

(c)replaceOnce方法

replaceOnce方法只会替换一次,也就是只会替换第一个要替换的字符序列,后面即使有匹配的字符序列也不会被替换

StringUtils.replaceOnce("abaa", "a", "z")); // zbaa

(d)overlay方法

overlay(String str,String overlay,int start,int end)方法可以在指定位置进行字符序列替换,从start索引处开始(包含)到end-1索引处为止进行替换

StringUtils.overlay("abcdef", "zzzz", 2, 4)); // abzzzzef

这里有一些特殊情况:

1)起始索引start小于结束索引end,这时会将end作为起始索引,start作为结束索引

StringUtils.overlay("abcdef", "zzzz", 4, 2)); // abzzzzef

StringUtils.overlay("abcdef", "zzzz", 4, 3)); // abczzzzef

StringUtils.overlay("abcdef", "zzzz", 4, 4)); // abcdzzzzef

StringUtils.overlay("abcdef", "zzzz", 4, 5)); // abcdzzzzf

2)起始索引start为负数,这时start会被当作0处理

StringUtils.overlay("abcdef", "zzzz", -1, 2)); // abcdzz

StringUtils.overlay("abcdef", "zzzz", -2, -3)); // zzzzabcdef

3)结束索引end大于原始字符串的长度,这时end会被当作原始字符串长度处理

StringUtils.overlay("abcdef", "zzzz", 8, 10)); // abcdefzzzz

(2)同时替换多个字符序列

(a)replaceEach方法

replaceEach(String text, String[] searchList, String[] replacementList)方法可以同时替换多个字符序列,但被替换和替换的字符序列的个数应该对应,否则会报IllegalArgumentException

StringUtils.replaceEach("china", new String[] { "ch", "a" }, new String[] { "x", "z" })); // xhinz (将ch和a分别替换为x和z)

StringUtils.replaceEach("china", null, new String[] { "x", "z" })); // china (存在null,不进行替换)

StringUtils.replaceEach("china", new String[] { "ch", "a" }, new String[] { "x", "z", "y" })); // IllegalArgumentException (被替换和替换的个数不对应)

(b)replaceEachRepeatedly方法

replaceEachRepeatedly(String text, String[] searchList, String[] replacementList)方法可以循环进行替换,具体见下面的例子:

StringUtils.replaceEachRepeatedly("china", new String[] { "c", "x" }, new String[] { "x", "z" })); // zhina (c被替换为x,x又被替换为z)

但如果替换是一个死循环,则会报IllegalStateException:

StringUtils.replaceEachRepeatedly("china", new String[] { "c", "x" }, new String[] { "x", "c" })); // IllegalStateException (c被替换为x,x又被替换为c)

四、反转

StringUtils中有关反转的方法如下:

1)reverse(String str)

2)reverseDelimited(String str, char separatorChar)

(1)简单反转

reverse(String str)方法

StringUtils.reverse("china")); // anihc

(2)根据指定分隔符进行反转,分隔符之间的字符不进行反转

StringUtils.reverseDelimited("china", ',')); // china

StringUtils.reverseDelimited("cxhinxa", 'x')); // axhinxz

StringUtils.reverseDelimited("c.hin.a", '.')); // a.hin.c

StringUtils.reverseDelimited("c.hina", '.')); // hina.c

额外补充(可能有重复)

isEmpty(String str) 是否为空,空格字符为false

isNotEmpty(String str) 是否为非空,空格字符为true

isBlank(String str) 是否为空,空格字符为true

isNotBlank(String str) 是否为非空,空格字符为false

trim(String str) 去除字符串两端的控制符,空字符串、null 返回 null

trimToEmpty(String str) 去除字符串两端的控制符,空字符串、null 返回""

stripToNull(String str) 去除字符串两端的空白符,空字符串、null 返回null

stripToEmpty(String str) 去除字符串两端的空白符,空字符串、null 返回""

strip(String str, String stripChars) 去掉str两端的在stripChars中的字符

StringUtils.strip("000000134_76539000","0")="134_76539"

stripStart (String str,String stripChars) 去除str 前端在stripChars中的字符

stripEnd (String str,String stripChars) 去除str 后端在stripChars中的字符

equals(String str1,String str2) 比较两个字符串是否相等,如果两个均为空则认为相等

indexOf(String str,char searchChar) 返回searchChar 在字符串中第一次出现的位置,如果没找到则返回 -1,如果str 为null 或者 "",也返回-1

indexOf(String str,char searchChar,int startPos) 返回字符searchChar从startPos开始在字符串str中第一次出现的位置。

contains(String str,char searchChar) str中是否包含字符searchChar,str为null 或者 searchChar为null,返回false 。

StringUtils.contains("", "") = true

StringUtils.contains("dfg", "") = true

containsIgnoreCase(String str,String searchStr) str中是否包含字符searchChar,不区分大小写

int indexOfAny(String str, char[] searchChars) 找出字符数组searchChars中的字符第一次出现在字符串str中的位置。 如果字符数组中的字符都不在字符串中,则返回-1 ,如果字符串为null或"",则返回-1

subString(String str,int start) 从start 开始,包含start 那个字符,得到字符串str 的子串,如果start为负数,则从后面开始数起。如果str 为null 或者 "" 则返回其本身

subStringBefore(String str,String separator) 得到字符串separator第一次出现前的子串。不包含那个字符,如果str 为null 或者 "" 则返回其本身。

subStringAfter(String str,String separator) 得到字符串separator第一次出现后的子串,不包含那个字符,如果 str 为null,或者"",则返回其本身

subString(String str,int start,int end) 同上

left(String str,int len) 得到字符串str从左边数len长度的子串,如果str 为null 或者 "",则返回其本身,如果len小于0,则返回""

right(String str,int len) 得到字符串str从右边数len长度的子串

mid(String str,int pos,int len) 得到字符串str从pos开始len长度的子串,pos小于0,则设为0。

split(String str) 把字符串拆分成一个字符串数组,用空白符 作为分隔符,字符串为null 返回null,字符串为"",返回空数组{}

split(String str,char c) 按照 char c 拆分字符串

join(Object[] arrey) 把数组中的元素连接成一个字符串返回

join(Object[] arrey,char c) 把数组中的元素拼接成一个字符串返回,把分隔符 c 也带上

deleteWhitespace(String str) 删除字符串中的所有空白符,包括转义字符

removeStart(String str,String remove) 如果字符串str是以remove开始,则去掉这个开始,然后返回,否则返回原来的串

removeEnd(String str,String remove) 如果字符串str是以字符串remove结尾,则去掉这个结尾,然后返回,否则返回原来的串。

remove(String str,char remove) 去掉字符串str中所有包含remove的部分,然后返回

replace(String str,String reql,String with) 在字符串text中用with代替repl,替换所有

replaceChars(String str,char old,char new) 在字符串中 new 字符代替 old 字符

replaceChars(String str, String searchChars, String replaceChars) 这个有点特别,先看下面三个例子

StringUtils.replaceChars("asssdf","s","yyy")) = "ayyydf"

StringUtils.replaceChars("asdf","sd","y")) = "ayf"

StringUtils.replaceChars("assssddddf","sd","y"))= "ayyyyf"

解释:为什么会出现上面这样的结果呢?原来这个置换规则是这样的,他是拿searchChars的index,去replaceChars找相应的index然后替换掉,怎么说呢?比如说第一个例子 s 的index 是0,找到yyy相对应的index为0的字符是y。第二个例子 's' 的index是0,'d'的index是1, 字符's' 可以找到对应index为0的 'y',d就找不到index为'1'的的字符了,所以就直接过滤掉了,听明白了吗?

overlay(String str,String new,int start,int end) 用字符串new 覆盖字符串str从start 到 end 之间的串

chop(String str) 去掉字符串的最后一个字符,比如/r/n

repeat(String str,int repart) 重复字符串repeat次

rightPad(String str,int size,String padStr) size长度的字符串,如果不够用padStr补齐

leftPad(String str,int size,String padStr) 同上

center(String str,int size) 产生一个字符串,长度等于size,str位于新串的中心

swapCase(String str) 字符串中的大写转小写,小写转换为大写

摘自:https://www.cnblogs.com/jmcui/p/7208383.html

string类有可以调换方向的函数吗_StringUtils类常用方法:转换、移除、替换、反转...相关推荐

  1. string类有可以调换方向的函数吗_String类中常用的操作

    一.获取: 1.获取字符串的长度(注意是方法,不是跟数组的属性一样的) int length(); 1 public static void getLength(){ 2 String s = &qu ...

  2. string类有可以调换方向的函数吗_深度剖析C++中的inline函数

    点蓝色字关注"CurryCoder" 微信公众号:CurryCoder的程序人生 怕什么真理无穷,进一寸有一寸的欢喜 1.inline函数的爱恨两难 内联函数比宏优点好很多,详细原 ...

  3. string类有可以调换方向的函数吗_C++中的string类的用法小结

    相信使用过MFC编程的朋友对CString这个类的印象应该非常深刻吧?的确,MFC中的CString类使用起来真的非常的方便好用.但是如果离开了MFC框架,还有没有这样使用起来非常方便的类呢?答案是肯 ...

  4. string类有可以调换方向的函数吗_关于String类的split()方法

    展开全部 split 方法:将一个字符串分割为子字符串,然后将结62616964757a686964616fe4b893e5b19e31333366306464果作为字符串数组返回. split 方法 ...

  5. python函数分为哪几类_Python 69个内置函数分8类总结

    1.内置函数 Python3解释器中内置了69个常用函数,属于底层的函数,它们到处可用.有些对大家来说比较熟悉,比如abs(), max(), sum()... 也有一些比较陌生,比如locals() ...

  6. 近3年专著类计算机参考文献,计算机科学方向论文参考文献 计算机科学专著类参考文献哪里找...

    精选了[100个]关于计算机科学方向论文参考文献供您后续的写作参考,在写计算机科学论文之前,很多大学生总是被计算机科学专著类参考文献哪里找难倒怎么办?请阅读本文! 一.计算机科学论文参考文献范文 [1 ...

  7. C++:友元(非成员友元函数、成员友元函数、友元类)

    3.8  友元:友元函数和友元类 友元函数 :既可以是不属于任何类的非成员函数,也可以是另一个类的成员函数,统称为友元函数.友元函数不是当前类的成员函数,而是独立于类的外部函数,但它可以访问该类所有的 ...

  8. C++学习笔记(10)运算符重载,友元函数,友元类

    c++允许我们为运算符定义专门的函数,这被称为运算符重载: 运算符可以简化字符串的操作,'+',以及使用关系运算符比较字符串,[ ]运算符访问向量中的元素: 例如: #include <iost ...

  9. 类与对象:类的6个默认成员函数: 构造函数、析构函数、拷贝构造函数、赋值操作符重载、默认拷贝构造与赋值运算符重载的问题、const成员函数、 取地址及const取地址操作符重载

    1.类的6个默认成员函数 如果一个类中什么成员都没有,简称为空类.任何一个类在我们不写的情况下,都会自动生成下面6个默认成员函数. 构造函数 析构函数 拷贝构造函数 赋值操作符重载 const成员函数 ...

最新文章

  1. 高通转战服务器 能否撼动英特尔统治地位
  2. 【Python基础】5个Pandas技巧
  3. 你要的云小信是范爷?柳岩?还是奶茶MM?
  4. AJAX——与服务器交换数据并更新部分网页技术
  5. Spark Streaming原理简析
  6. LeetCodeOJ. String to Integer (atoi)
  7. 学习python有哪些优势
  8. 【报告分享】2020新零售直播活力报告.pdf(附下载链接)
  9. 寒冬已至?四面楚歌的 Android 工程师该何去何从?
  10. Eclipse智能感知功能优化
  11. SignalR 跨域解决方案全面
  12. 冒险岛079单机/小范围联机游戏搭建
  13. 基于Java发送邮件
  14. h5调用指纹识别_Vue指纹识别验证 h5plus
  15. java用画正弦函数_用java语言绘制正弦曲线
  16. 惠普HP Designjet Z5200 PostScript 打印机驱动
  17. Apollo - 阿波罗配置中心使用,一文搞定!
  18. DNA序列编码中Hairpin的定义和计算
  19. 人脸识别客户端应用程序_如何在应用程序中使用功能识别设置人脸检测
  20. 基于jsp+mysql+java+ssm高校学生成绩管理系统——计算机毕业设计

热门文章

  1. 【蓝牙mesh】蓝牙Mesh的三种Model
  2. 服务器r730系统备份软件,服务器r730
  3. 2022年低压电工考试模拟100题模拟考试平台操作
  4. 从理论到实践落地「微服务
  5. 《CCNP SWITCH 300-115学习指南》——2.1节园区网结构
  6. 听叔一句劝,消息队列的水太深,你把握不住!
  7. 【生活工作经验 四】互联网社招求职攻略
  8. 高等数学 下册 第九章 多元函数的极限与连续性 笔记
  9. vite预构建源码梳理
  10. Science丨肠道菌群与生物钟