在處理字符串的時候,很常見的需求就是需要截取字符串的某一部分。Java 中提供了很多方法來完成字符串的截取操作,本文將詳細介紹 Java 實現字符串截取的方式和實例代碼。
一、substring()方法
Java 中 String 類的 substring() 方法可以方便地獲取原字符串中的某一段子串。
/** * 截取字符串的一部分 * @param str 原字符串 * @param start 子串的起始位置 * @param end 子串的結束位置 * @return 截取後的子串 */ public static String subString(String str, int start, int end) { return str.substring(start, end); }
在上述代碼中,我們通過 java.lang.String 類的 substring(start, end) 方法截取原字符串的一段子串。
在使用該方法時需要注意以下幾點:
- 子串的起始位置從 0 開始計數;
- 子串的結束位置不包含在截取的結果中,也就是說,截取的結果是從起始位置開始,到結束位置 前一位 的所有字符組成的字符串;
- 如果省略了 end 參數,則表示截取從起始位置開始的所有字符;
- 如果 start 參數大於 end 參數,則該方法會拋出字符串下標越界異常。
二、split()方法
Java 中 String 類的 split() 方法可以將指定字符串按照某個分隔符切分成多個字符串。
/** * 根據分隔符切分字符串 * @param str 原字符串 * @param separator 分隔符 * @return 切分後的字符串數組 */ public static String[] split(String str, String separator) { return str.split(separator); }
在上述代碼中,我們通過 java.lang.String 類的 split(separator) 方法將指定的字符串按照指定的分隔符切分成一個字符串數組。
在使用該方法時需要注意以下幾點:
- 分隔符可以是多個字符組成的字符串;
- 如果分隔符在字符串開頭或結尾,則會將空字符串(“”)加入到切分結果數組中;
- 如果要對字符串切分成單個字符,請使用 split(“”) 方法。
三、StringUtils.substringBefore()和StringUtils.substringAfter()方法
Apache Commons Lang 庫中的 StringUtils 類提供了兩個很有用的方法 substringBefore() 和 substringAfter(),可以方便地根據指定的分隔符截取字符串的兩個部分。
/** * 截取在分隔符之前的字符串 * @param str 原字符串 * @param separator 分隔符 * @return 分隔符之前的字符串 */ public static String subStringBefore(String str, String separator) { return StringUtils.substringBefore(str, separator); } /** * 截取在分隔符之後的字符串 * @param str 原字符串 * @param separator 分隔符 * @return 分隔符之後的字符串 */ public static String subStringAfter(String str, String separator) { return StringUtils.substringAfter(str, separator); }
在上述代碼中,我們通過 org.apache.commons.lang3.StringUtils 類的 substringBefore() 和 substringAfter() 方法分別獲取原字符串中指定分隔符前後的部分。
在使用該方法時需要注意以下幾點:
- 如果分隔符不存在於原字符串中,則 substringBefore() 方法會返回整個原字符串,substringAfter() 方法會返回空字符串(“”);
- 如果分隔符在字符串開頭或結尾,則會將空字符串(“”)加入到截取結果中。
四、參考資料
1. Java SE 11 String 類文檔;
2. Apache Commons Lang 官方文檔。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/237345.html