Java String substring() 方法返回此字符串的子字符串。此方法始終返回一個新字符串,原始字符串保持不變,因為Java中的字符串是不可變的。
Java String substring() 方法
Java String substring 方法被重載並具有兩個變體。
substring(int beginIndex)
: 此方法返回一個新字符串,該字符串是此字符串的子字符串。子字符串從指定索引處的字符開始,延伸到此字符串的末尾。substring(int beginIndex, int endIndex)
: 子字符串從指定的beginIndex開始,延伸到索引endIndex – 1的字符。因此,子字符串的長度為(endIndex – beginIndex)。
String substring() 方法重要點
- 如果以下任一條件滿足,字符串的子字符串方法都會拋出
IndexOutOfBoundsException
異常。- 如果beginIndex為負數
- endIndex大於此字符串對象的長度
- beginIndex大於endIndex
- 在兩種子字符串方法中,beginIndex是包含的,而endIndex是排除的。
Java字符串substring()示例
這裡是一個簡單的Java子字符串程序。
package com.journaldev.util;
public class StringSubstringExample {
public static void main(String[] args) {
String str = "www.journaldev.com";
System.out.println("Last 4 char String: " + str.substring(str.length() - 4));
System.out.println("First 4 char String: " + str.substring(0, 4));
System.out.println("website name: " + str.substring(4, 14));
}
}
上述子字符串示例程序的輸出是:
Last 4 char String: .com
First 4 char String: www.
website name: journaldev
使用substring()方法檢查回文
我們可以使用substring()方法來檢查一個字符串是否為回文。
package com.journaldev.util;
public class StringPalindromeTest {
public static void main(String[] args) {
System.out.println(checkPalindrome("abcba"));
System.out.println(checkPalindrome("XYyx"));
System.out.println(checkPalindrome("871232178"));
System.out.println(checkPalindrome("CCCCC"));
}
private static boolean checkPalindrome(String str) {
if (str == null)
return false;
if (str.length() <= 1) {
return true;
}
String first = str.substring(0, 1);
String last = str.substring(str.length() - 1);
if (!first.equals(last))
return false;
else
return checkPalindrome(str.substring(1, str.length() - 1));
}
}
這裡我們檢查第一個字母和最後一個字母是否相同。如果它們不相同,則返回false。否則,遞歸地調用該方法,傳遞刪除了第一個和最後一個字母的子字符串。
你可以查看我們的GitHub存儲庫中更多的字符串示例。
參考:Oracle API文檔
Source:
https://www.digitalocean.com/community/tutorials/java-string-substring