Java子字符串

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.xuhuhu.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: xuhuhu.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。否则,通过传递删除了第一个和最后一个字母的子字符串来递归地再次调用该方法。


上一篇: java中方法重载和方法重写的区别 下一篇:无