1. 程式人生 > >java獲取第N次字串出現的位置,StringUtils詳解(判空,去空,比較,查詢)

java獲取第N次字串出現的位置,StringUtils詳解(判空,去空,比較,查詢)

用一個工具類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()的字元
後面內容有點多,我有點寫不下去了,如果你想了解哪些,可以給我留言我去跟新