您的位置:首页 > 编程语言 > Java开发

java获取第N次字符串出现的位置,StringUtils详解(判空,去空,比较,查找)

2018-01-08 18:06 477 查看
用一个工具类commons-lang3.jar

如果找不到的同学的,可以导入maven

<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.7</version>
</dependency>


导入:
import org.apache.commons.lang3;


调用StringUtils方法

StringUtils.ordinalIndexOf("192.168.1.1",".",3);


这句话的意思是:获取”192.168.1.1”中第三个“.”的位置

StringUtil其他方法

1、判空

1.
public static boolean isEmpty(final CharSequence cs)


判断字符串类型的是否为空,CharSequence 该接口为所有字符串类型的接口,如String,StringBuffer,StringBuder

2.
public static boolean isNotEmpty(final CharSequence cs)


!StringUtils.isEmpty(cs)

3.
public static boolean isBlank(final CharSequence cs)


同意也是判断是否为空串,与isEmpty不同的是会判断是否为空白字符,如空格、回车、换行、制表等,” “这样的字符串通过isBlank()会判断为true,而isEmpty为false

4.
public static boolean isNotBlank(final CharSequence cs)


!isBlank()

2、去空

1.
public static String trim(final String str)


如果str==null则返回null,否则去掉字符串两端空格

2.
public static String trimToNull(final String str)


去掉两端空串后,如果结果isEmpty为true,则返回null对象

3.
public static String trimToEmpty(final String str)


如果结果为空串,则返回”“。

4.
public static String strip(final String str)


替换掉前后的空白字符,但不是调用java的trim()方法,一些”\b”这样的功能性符号不会被去掉,”\t\r\n\f”这些都会被去掉

5.
public static String stripToNull(String str)


替换完成后如果isEmpty为true则返回null

6.
public static String stripToEmpty(final String str)


替换完成后如果为空串,则返回””

7.
public static String strip(String str, final String stripChars)


替换str两端的stripChars字符串

8.
public static String stripStart(final String str, final String stripChars)


替换str开始字符串

如果stripChars为null,则为替换开始空白字符

如果stripChars.isEmpty()为true,则返回原串

如果stripChars不为空,则替换开始出现的stripChars

9.
public static String stripEnd(final String str, final String stripChars)


替换str结尾,同8

10.
public static String[] stripAll(final String... strs)


对字符串数组中的每个字符串进行 strip(String str) ,然后返回。如果 strs 为 null 或 strs 长度为0,则返回 strs 本身

11.
public static String[] stripAll(final String[] strs, final String stripChars)


对字符串数组中的每个字符串进行 strip(String str, String stripChars) ,然后返回。如果 strs 为 null 或 strs 长度为0,则返回 strs 本身

12.
public static String stripAccents(final String input)


替换\u0300-\u036F范围的字符串,对这个方法并不是很了解

3、比较

1.
public static boolean equals(final CharSequence cs1, final CharSequence cs2)


比较字符串类型(String,StringBuffer,StringBuder等)是否相同

2.
public static boolean equalsIgnoreCase(final CharSequence str1, final CharSequence str2)


比较两个字符串(String,StringBuffer,StringBuder等)是否相等,不区分大小写,如果两个均为空则也认为相等

4、查找

1.
public static int indexOf(final CharSequence seq, final int searchChar)


返回字符 searchChar 在字符串 str 中第一次出现的位置。

2.
public static int indexOf(final CharSequence seq, final int searchChar, final int startPos)


按照字符查找位置,startPos开始位置

3.
public static int indexOf(final CharSequence seq, final CharSequence searchSeq)


查找子串

以下查找根据参数可以明白意思,就不详细写出来了

4.
public static int indexOf(final CharSequence seq, final CharSequence searchSeq, final int startPos)


5.
public static int ordinalIndexOf(final CharSequence str, final CharSequence searchStr, final int ordinal)
如果这个不会,就翻到最前面

6.
public static int indexOfIgnoreCase(final CharSequence str, final CharSequence searchStr)


忽略大小写

7.
public static int indexOfIgnoreCase(final CharSequence str, final CharSequence searchStr, int startPos)


8.
public static int lastIndexOf(final CharSequence seq, final int searchChar)


9.
public static int lastIndexOf(final CharSequence seq, final int searchChar, final int startPos)


10.
public static int lastIndexOf(final CharSequence seq, final CharSequence searchSeq)


11.
public static int lastOrdinalIndexOf(final CharSequence str, final CharSequence searchStr, final int ordinal)


12.
public static int lastIndexOf(final CharSequence seq, final CharSequence searchSeq, final int startPos)


13.
public static int lastIndexOfIgnoreCase(final CharSequence str, final CharSequence searchStr)


14.
public static int lastIndexOfIgnoreCase(final CharSequence str, final CharSequence searchStr, int startPos)


15.
public static int indexOfAny(final CharSequence cs, final char... searchChars)


返回searchChars中任意一个字符的位置

16.
public static int indexOfAny(final CharSequence cs, final String searchChars)


也就是searchChars中的任意一个字符

17.
public static int indexOfAnyBut(final CharSequence cs, final char... searchChars)


字符串cs中,有任意字符不是searchChars的子集,并返回第一个非searchChars中的字符位置

18.
public static int indexOfAnyBut(final CharSequence seq, final CharSequence searchChars)


同上,将字符串searchChars拆分成字符后比较

5、是否包含

1.public static boolean contains(final CharSequence seq, final int searchChar)

是否包含字符

2.public static boolean contains(final CharSequence seq, final CharSequence searchSeq)

是否包含子串

3.public static boolean containsIgnoreCase(final CharSequence str, final CharSequence searchStr)

不区分大小写的包含

4.public static boolean containsWhitespace(final CharSequence seq)

是否包含空字符串

5.
public static boolean containsAny(final CharSequence cs, final char... searchChars)


是否包含searchChars中任意字符

6.
public static boolean containsAny(final CharSequence cs, final CharSequence searchChars)


同17

7.
public static boolean containsAny(CharSequence cs, CharSequence... searchCharSequences)


是否包含任意字符串

8.
public static boolean containsOnly(final CharSequence cs, final char... valid)


仅包含,cs只包含valid中的字符

9.
public static boolean containsOnly(final CharSequence cs, final String validChars)


仅包含validChars.toCharArray()的字符

后面内容有点多,我有点写不下去了,如果你想了解哪些,可以给我留言我去跟新
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息