整理apache提供的StringUtils

本文详细介绍Java中使用StringUtils处理字符串的方法,包括字符串判断、查找、截取、替换等实用技巧,并提供示例代码帮助读者快速掌握。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

由于字数限制分开发
(一)
001 public static void TestStr(){  
002     //null 和 ""操作~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
003     //判断是否Null 或者 ""  
004     //System.out.println(StringUtils.isEmpty(null));  
005     //System.out.println(StringUtils.isNotEmpty(null));  
006     //判断是否null 或者 "" 去空格~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
007     //System.out.println(StringUtils.isBlank("  "));  
008     //System.out.println(StringUtils.isNotBlank(null));  
009     //去空格.Null返回null~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
010     //System.out.println(StringUtils.trim(null));  
011     //去空格,将Null和"" 转换为Null  
012     //System.out.println(StringUtils.trimToNull(""));  
013     //去空格,将NULL 和 "" 转换为""  
014     //System.out.println(StringUtils.trimToEmpty(null));  
015     //可能是对特殊空格符号去除??  
016     //System.out.println(StringUtils.strip("大家好  啊  \t"));  
017     //同上,将""和null转换为Null  
018     //System.out.println(StringUtils.stripToNull(" \t"));  
019     //同上,将""和null转换为""  
020     //System.out.println(StringUtils.stripToEmpty(null));  
021     //将""或者Null 转换为 ""  
022     //System.out.println(StringUtils.defaultString(null));  
023     //仅当字符串为Null时 转换为指定的字符串(二参数)  
024     //System.out.println(StringUtils.defaultString("", "df"));  
025     //当字符串为null或者""时,转换为指定的字符串(二参数)  
026     //System.out.println(StringUtils.defaultIfEmpty(null, "sos"));  
027     //去空格.去字符~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
028     //如果第二个参数为null去空格(否则去掉字符串2边一样的字符,到不一样为止)  
029     //System.out.println(StringUtils.strip("fsfsdf", "f"));  
030     //如果第二个参数为null只去前面空格(否则去掉字符串前面一样的字符,到不一样为止)  
031     //System.out.println(StringUtils.stripStart("ddsuuu ", "d"));  
032     //如果第二个参数为null只去后面空格,(否则去掉字符串后面一样的字符,到不一样为止)  
033     //System.out.println(StringUtils.stripEnd("dabads", "das"));  
034     //对数组没个字符串进行去空格。  
035     //ArrayToList(StringUtils.stripAll(new String[]{" 中华 ", "民 国 ", "共和 "}));  
036     //如果第二个参数为null.对数组每个字符串进行去空格。(否则去掉数组每个元素开始和结尾一样的字符)  
037     //ArrayToList(StringUtils.stripAll(new String[]{" 中华 ", "民 国", "国共和国"}, "国"));  
038     //查找,判断~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
039     //判断2个字符串是否相等相等,Null也相等  
040     //System.out.println(StringUtils.equals(null, null));  
041     //不区分大小写比较  
042     //System.out.println(StringUtils.equalsIgnoreCase("abc", "ABc"));  
043     //查找,不知道怎么弄这么多查找,很多不知道区别在哪?费劲~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
044     //普通查找字符,如果一参数为null或者""返回-1  
045     //System.out.println(StringUtils.indexOf(null, "a"));  
046     //从指定位置(三参数)开始查找,本例从第2个字符开始查找k字符  
047     //System.out.println(StringUtils.indexOf("akfekcd中华", "k", 2));  
048     //未发现不同之处  
049     //System.out.println(StringUtils.ordinalIndexOf("akfekcd中华", "k", 2));  
050     //查找,不区分大小写  
051     //System.out.println(StringUtils.indexOfIgnoreCase("adfs", "D"));  
052     //从指定位置(三参数)开始查找,不区分大小写  
053     //System.out.println(StringUtils.indexOfIgnoreCase("adfs", "a", 3));  
054     //从后往前查找  
055     //System.out.println(StringUtils.lastIndexOf("adfas", "a"));  
056     //未理解,此结果为2  
057     //System.out.println(StringUtils.lastIndexOf("d饿abasdafs我", "a", 3));  
058     //未解,此结果为-1  
059     //System.out.println(StringUtils.lastOrdinalIndexOf("yksdfdht", "f", 2));  
060     //从后往前查,不区分大小写  
061     //System.out.println(StringUtils.lastIndexOfIgnoreCase("sdffet", "E"));  
062     //未解,此结果为1  
063     //System.out.println(StringUtils.lastIndexOfIgnoreCase("efefrfs看", "F" , 2));  
064     //检查是否查到,返回boolean,null返回假  
065     //System.out.println(StringUtils.contains("sdf", "dg"));  
066     //检查是否查到,返回boolean,null返回假,不区分大小写  
067     //System.out.println(StringUtils.containsIgnoreCase("sdf", "D"));  
068     //检查是否有含有空格,返回boolean  
069     //System.out.println(StringUtils.containsWhitespace(" d"));  
070     //查询字符串跟数组任一元素相同的第一次相同的位置  
071     //System.out.println(StringUtils.indexOfAny("absfekf", new String[]{"f", "b"}));  
072     //查询字符串中指定字符串(参数二)出现的次数  
073     //System.out.println(StringUtils.indexOfAny("afefes", "e"));  
074     //查找字符串中是否有字符数组中相同的字符,返回boolean  
075     //System.out.println(StringUtils.containsAny("asfsd", new char[]{'k', 'e', 's'}));  
076     //未理解与lastIndexOf不同之处。是否查到,返回boolean  
077     //System.out.println(StringUtils.containsAny("啡f咖啡", "咖"));  
078     //未解  
079     //System.out.println(StringUtils.indexOfAnyBut("seefaff", "af"));  
080     //判断字符串中所有字符,都是出自参数二中。  
081     //System.out.println(StringUtils.containsOnly("中华华", "华"));  
082     //判断字符串中所有字符,都是出自参数二的数组中。  
083     //System.out.println(StringUtils.containsOnly("中华中", new char[]{'中', '华'}));  
084     //判断字符串中所有字符,都不在参数二中。  
085     //System.out.println(StringUtils.containsNone("中华华", "国"));  
086     //判断字符串中所有字符,都不在参数二的数组中。  
087     //System.out.println(StringUtils.containsNone("中华中", new char[]{'中', '达人'}));  
088     //从后往前查找字符串中与字符数组中相同的元素第一次出现的位置。本例为4  
089     //System.out.println(StringUtils.lastIndexOfAny("中国人民共和国", new String[]{"国人", "共和"}));  
090     //未发现与indexOfAny不同之处  查询字符串中指定字符串(参数二)出现的次数  
091     //System.out.println(StringUtils.countMatches("中国人民共和中国", "中国"));  
092     //检查是否CharSequence的只包含Unicode的字母。空将返回false。一个空的CharSequence(长()= 0)将返回true  
093     //System.out.println(StringUtils.isAlpha("这是干什么的2"));  
094     //检查是否只包含Unicode的CharSequence的字母和空格('')。空将返回一个空的CharSequence假(长()= 0)将返回true。  
095     //System.out.println(StringUtils.isAlphaSpace("NBA直播 "));  
096     //检查是否只包含Unicode的CharSequence的字母或数字。空将返回false。一个空的CharSequence(长()= 0)将返回true。  
097     //System.out.println(StringUtils.isAlphanumeric("NBA直播"));  
098     //如果检查的Unicode CharSequence的只包含字母,数字或空格('')。空将返回false。一个空的CharSequence(长()= 0)将返回true。  
099     //System.out.println(StringUtils.isAlphanumericSpace("NBA直播"));  
100     //检查是否只包含ASCII可CharSequence的字符。空将返回false。一个空的CharSequence(长()= 0)将返回true。  
101     //System.out.println(StringUtils.isAsciiPrintable("NBA直播"));  
102     //检查是否只包含数值。  
103     //System.out.println(StringUtils.isNumeric("NBA直播"));  
104     //检查是否只包含数值或者空格  
105     //System.out.println(StringUtils.isNumericSpace("33 545"));  
106     //检查是否只是空格或""。  
107     //System.out.println(StringUtils.isWhitespace(" "));  
108     //检查是否全是英文小写。  
109     //System.out.println(StringUtils.isAllLowerCase("kjk33"));  
110     //检查是否全是英文大写。  
111     //System.out.println(StringUtils.isAllUpperCase("KJKJ"));  


112     //交集操作~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
113     //去掉参数2字符串中在参数一中开头部分共有的部分,结果为:人民共和加油  
114     //System.out.println(StringUtils.difference("中国加油", "中国人民共和加油"));  
115     //统计2个字符串开始部分共有的字符个数  
116     //System.out.println(StringUtils.indexOfDifference("ww.taobao", "www.taobao.com"));  
117     //统计数组中各个元素的字符串开始都一样的字符个数  
118     //System.out.println(StringUtils.indexOfDifference(new String[] {"中国加油", "中国共和", "中国人民"}));  
119     //取数组每个元素共同的部分字符串  
120     //System.out.println(StringUtils.getCommonPrefix(new String[] {"中国加油", "中国共和", "中国人民"}));  
121     //统计参数一中每个字符与参数二中每个字符不同部分的字符个数  
122     //System.out.println(StringUtils.getLevenshteinDistance("中国共和发国人民", "共和国"));  
123     //判断开始部分是否与二参数相同  
124     //System.out.println(StringUtils.startsWith("中国共和国人民", "中国"));  
125     //判断开始部分是否与二参数相同。不区分大小写  
126     //System.out.println(StringUtils.startsWithIgnoreCase("中国共和国人民", "中国"));  
127     //判断字符串开始部分是否与数组中的某一元素相同  
128     //System.out.println(StringUtils.startsWithAny("abef", new String[]{"ge", "af", "ab"}));  
129     //判断结尾是否相同  
130     //System.out.println(StringUtils.endsWith("abcdef", "def"));  
131     //判断结尾是否相同,不区分大小写  
132     //System.out.println(StringUtils.endsWithIgnoreCase("abcdef", "Def"));  
133     //字符串截取~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
134     //截取指定位置的字符,null返回null.""返回""  
135     //System.out.println(StringUtils.substring("国民党", 2));  
136     //截取指定区间的字符  
137     //System.out.println(StringUtils.substring("中国人民共和国", 2, 4));  
138     //从左截取指定长度的字符串  
139     //System.out.println(StringUtils.left("说点什么好呢", 3));  
140     //从右截取指定长度的字符串  
141     //System.out.println(StringUtils.right("说点什么好呢", 3));  
142     //从第几个开始截取,三参数表示截取的长度  
143     //System.out.println(StringUtils.mid("说点什么好呢", 3, 2));  
144     //截取到等于第二个参数的字符串为止  
145     //System.out.println(StringUtils.substringBefore("说点什么好呢", "好"));  
146     //从左往右查到相等的字符开始,保留后边的,不包含等于的字符。本例:什么好呢  
147     //System.out.println(StringUtils.substringAfter("说点什么好呢", "点"));  
148     //这个也是截取到相等的字符,但是是从右往左.本例结果:说点什么好  
149     //System.out.println(StringUtils.substringBeforeLast("说点什么好点呢", "点"));  
150     //这个截取同上是从右往左。但是保留右边的字符  
151     //System.out.println(StringUtils.substringAfterLast("说点什么好点呢?", "点"));  
152     //截取查找到第一次的位置,和第二次的位置中间的字符。如果没找到第二个返回null。本例结果:2010世界杯在  
153     //System.out.println(StringUtils.substringBetween("南非2010世界杯在南非,在南非", "南非"));  
154     //返回参数二和参数三中间的字符串,返回数组形式  
155     //ArrayToList(StringUtils.substringsBetween("", "[", "]"));  
156     //分割~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
157     //用空格分割成数组,null为null  
158     //ArrayToList(StringUtils.split("中华 人民  共和"));  
159     //以指定字符分割成数组  
160     //ArrayToList(StringUtils.split("中华 ,人民,共和", ","));  
161     //以指定字符分割成数组,第三个参数表示分隔成数组的长度,如果为0全体分割  
162     //ArrayToList(StringUtils.split("中华 :人民:共和", ":", 2));  
163     //未发现不同的地方,指定字符分割成数组  
164     //ArrayToList(StringUtils.splitByWholeSeparator("ab-!-cd-!-ef", "-!-"));  
165     //未发现不同的地方,以指定字符分割成数组,第三个参数表示分隔成数组的长度  
166     //ArrayToList(StringUtils.splitByWholeSeparator("ab-!-cd-!-ef", "-!-", 2));  
167     //分割,但" "不会被忽略算一个元素,二参数为null默认为空格分隔  
168     //ArrayToList(StringUtils.splitByWholeSeparatorPreserveAllTokens(" ab   de fg ", null));  
169     //同上,分割," "不会被忽略算一个元素。第三个参数代表分割的数组长度。  
170     //ArrayToList(StringUtils.splitByWholeSeparatorPreserveAllTokens("ab   de fg", null, 3));  
171     //未发现不同地方,分割  
172     //ArrayToList(StringUtils.splitPreserveAllTokens(" ab   de fg "));  
173     //未发现不同地方,指定字符分割成数组  
174     //ArrayToList(StringUtils.splitPreserveAllTokens(" ab   de fg ", null));  
175     //未发现不同地方,以指定字符分割成数组,第三个参数表示分隔成数组的长度  
176     //ArrayToList(StringUtils.splitPreserveAllTokens(" ab   de fg ", null, 2));  
177     //以不同类型进行分隔  
178     //ArrayToList(StringUtils.splitByCharacterType("AEkjKr i39:。中文"));  
179     //未解  
180     //ArrayToList(StringUtils.splitByCharacterTypeCamelCase("ASFSRules234"));  
181     //拼接~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
182     //将数组转换为字符串形式  
183     //System.out.println(StringUtils.concat(getArrayData()));  
184     //拼接时用参数一得字符相连接.注意null也用连接符连接了  
185     //System.out.println(StringUtils.concatWith(",", getArrayData()));  
186     //也是拼接。未发现区别  
187     //System.out.println(StringUtils.join(getArrayData()));  
188     //用连接符拼接,为发现区别  
189     //System.out.println(StringUtils.join(getArrayData(), ":"));  
190     //拼接指定数组下标的开始(三参数)和结束(四参数,不包含)的中间这些元素,用连接符连接  
191     //System.out.println(StringUtils.join(getArrayData(), ":", 1, 3));  
192     //用于集合连接字符串.用于集合  
193     //System.out.println(StringUtils.join(getListData(), ":"));  
194     //移除,删除~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
195     //删除所有空格符  
196     //System.out.println(StringUtils.deleteWhitespace(" s 中 你 4j"));  
197     //移除开始部分的相同的字符  
198     //System.out.println(StringUtils.removeStart("www.baidu.com", "www."));  
199     //移除开始部分的相同的字符,不区分大小写  
200     //System.out.println(StringUtils.removeStartIgnoreCase("www.baidu.com", "WWW"));  
201     //移除后面相同的部分  
202     //System.out.println(StringUtils.removeEnd("www.baidu.com", ".com"));  
203     //移除后面相同的部分,不区分大小写  
204     //System.out.println(StringUtils.removeEndIgnoreCase("www.baidu.com", ".COM"));  
205     //移除所有相同的部分  
206     //System.out.println(StringUtils.remove("www.baidu.com/baidu", "bai"));  
207     //移除结尾字符为"\n", "\r", 或者 "\r\n".  
208     //System.out.println(StringUtils.chomp("abcrabc\r"));  
209     //也是移除,未解。去结尾相同字符  
210     //System.out.println(StringUtils.chomp("baidu.com", "com"));  
211     //去掉末尾最后一个字符.如果是"\n", "\r", 或者 "\r\n"也去除  
212     //System.out.println(StringUtils.chop("wwe.baidu"));  

213     //替换~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
214     //替换指定的字符,只替换第一次出现的  
215     //System.out.println(StringUtils.replaceOnce("www.baidu.com/baidu", "baidu", "hao123"));  
216     //替换所有出现过的字符  
217     //System.out.println(StringUtils.replace("www.baidu.com/baidu", "baidu", "hao123"));  
218     //也是替换,最后一个参数表示替换几个  
219     //System.out.println(StringUtils.replace("www.baidu.com/baidu", "baidu", "hao123", 1));  
220     //这个有意识,二三参数对应的数组,查找二参数数组一样的值,替换三参数对应数组的值。本例:baidu替换为taobao。com替换为net  
221     //System.out.println(StringUtils.replaceEach("www.baidu.com/baidu", new String[]{"baidu", "com"}, new String[]{"taobao", "net"}));  
222     //同上,未发现不同  
223     //System.out.println(StringUtils.replaceEachRepeatedly("www.baidu.com/baidu", new String[]{"baidu", "com"}, new String[]{"taobao", "net"}));  
224     //这个更好,不是数组对应,是字符串参数二和参数三对应替换.(二三参数不对应的话,自己看后果)  
225     //System.out.println(StringUtils.replaceChars("www.baidu.com", "bdm", "qo"));  
226     //替换指定开始(参数三)和结束(参数四)中间的所有字符  
227     //System.out.println(StringUtils.overlay("www.baidu.com", "hao123", 4, 9));  
228     //添加,增加~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
229     //复制参数一的字符串,参数二为复制的次数  
230     //System.out.println(StringUtils.repeat("ba", 3));  
231     //复制参数一的字符串,参数三为复制的次数。参数二为复制字符串中间的连接字符串  
232     //System.out.println(StringUtils.repeat("ab", "ou", 3));  
233     //如何字符串长度小于参数二的值,末尾加空格补全。(小于字符串长度不处理返回)  
234     //System.out.println(StringUtils.rightPad("海川", 4));  
235     //字符串长度小于二参数,末尾用参数三补上,多于的截取(截取补上的字符串)  
236     //System.out.println(StringUtils.rightPad("海川", 4, "河流啊"));  
237     //同上在前面补全空格  
238     //System.out.println(StringUtils.leftPad("海川", 4));  
239     //字符串长度小于二参数,前面用参数三补上,多于的截取(截取补上的字符串)  
240     //System.out.println(StringUtils.leftPad("海川", 4, "大家好"));  
241     //字符串长度小于二参数。在两侧用空格平均补全(测试后面补空格优先)  
242     //System.out.println(StringUtils.center("海川", 3));  
243     //字符串长度小于二参数。在两侧用三参数的字符串平均补全(测试后面补空格优先)  
244     //System.out.println(StringUtils.center("海川", 5, "流"));  
245     //只显示指定数量(二参数)的字符,后面以三个点补充(参数一截取+三个点=二参数)  
246     //System.out.println(StringUtils.abbreviate("中华人民共和国", 5));  
247     //2头加点这个有点乱。本例结果: ...ijklmno  
248     //System.out.println(StringUtils.abbreviate("abcdefghijklmno", 12, 10));  
249     //保留指定长度,最后一个字符前加点.本例结果: ab.f  
250     //System.out.println(StringUtils.abbreviateMiddle("abcdef", ".", 4));  
251     //转换,刷选~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
252     //转换第一个字符为大写.如何第一个字符是大写原始返回  
253     //System.out.println(StringUtils.capitalize("Ddf"));  
254     //转换第一个字符为大写.如何第一个字符是大写原始返回  
255     //System.out.println(StringUtils.uncapitalize("DTf"));  
256     //反向转换,大写变小写,小写变大写  
257     //System.out.println(StringUtils.swapCase("I am Jiang, Hello"));  
258     //将字符串倒序排列  
259     //System.out.println(StringUtils.reverse("中国人民"));  
260     //根据特定字符(二参数)分隔进行反转  
261     //System.out.println(StringUtils.reverseDelimited("中:国:人民", ':'));  
262 }  
263    
264 //将数组转换为List  
265 private static void ArrayToList(String[] str){  
266     System.out.println(Arrays.asList(str) + " 长度:" + str.length);  
267 }  
268    
269 //获得集合数据  
270 private static List getListData(){  
271     List list = new ArrayList();  
272     list.add("你好");  
273     list.add(null);  
274     list.add("他好");  
275     list.add("大家好");  
276     return list;  
277 }  
278    
279 //获得数组数据   
280 private static String[] getArrayData(){  
281     return (String[]) getListData().toArray(new String[0]);  
282 }  
283    
284 public static void main(String[] args) {  
285     TestStr();  
286 } 



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值