Java String substring()
方法用于将String的一部分作为新String返回。此方法始终返回一个新的String,并且原始字符串值不受影响,因为String在java中是不可变的。
Java String substring()
方法已重载,有两个变体。
substring(int beginIndex)
- 此方法返回一个新字符串,该字符串是此字符串的子字符串。子字符串以指定索引处的字符开头,并延伸到此字符串的末尾。substring(int beginIndex, int endIndex)
- 此方法返回一个新字符串,该字符串是此字符串的子字符串。子字符串从指定的beginIndex
开始,并扩展到索引endIndex-1
处的字符。因此子字符串的长度为(endIndex - beginIndex)
。
Java子字符串要点
如果满足以下任何条件,则两个字符串子字符串方法都可以抛出
IndexOutOfBoundsException
异常。- 如果
beginIndex
为负数 endIndex
大于此String对象的长度beginIndex
大于endIndex
- 如果
beginIndex
是包含的,endIndex
在两个子字符串方法中都是不包含的。
Java子字符串示例
下面是java中子字符串的简单程序。
public class StringSubstringExample { public static void main(String[] args) { String str = "www.example.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: example.com
在Java中使用子串检查回文
可以使用substring
来检查一个String是否是回文。
public class StringPalindromeTest { public static void main(String[] args) { System.out.println(checkPalindrome("abcba")); System.out.println(checkPalindrome("XYyx")); System.out.println(checkPalindrome("999232999")); 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)); } }
执行上面示例代码,得到以下结果 -
true false true true
在上面示例代码中,检查第一个字母和最后一个字母是否相同。如果它们不相同,则返回false
。否则,通过传递删除了第一个和最后一个字母的子字符串来递归地再次调用该方法。