Java String substring() 方法示例

Java String substring()方法返回该字符串的子字符串。该方法始终返回一个新字符串,因为在Java中String是不可变的,所以原始字符串保持不变。

Java String substring()方法

Java String substring方法被重载,有两个变体。

  1. substring(int beginIndex):该方法返回一个新字符串,它是该字符串的子字符串。子字符串从指定索引处的字符开始,一直延伸到该字符串的末尾。
  2. substring(int beginIndex, int endIndex):子字符串从指定的beginIndex开始,一直延伸到索引endIndex – 1处的字符。因此,子字符串的长度为(endIndex – beginIndex)。

String substring()方法重要要点

  1. 字符串substring方法都可能在满足以下任何条件时抛出IndexOutOfBoundsException异常。
    • 如果beginIndex为负数
    • endIndex大于此String对象的长度
    • beginIndex大于endIndex
  2. 在substring方法中,beginIndex包含在内,endIndex不包含在内。

Java String substring() 示例

这是一个在Java中使用substring的简单程序。

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));
	}
}

上述substring示例程序的输出为:

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