Java StringBuffer subSequence() Method

The StringBuffer.subSequence() method in Java is used to retrieve a subsequence of characters from the StringBuffer object. This guide will cover the method's usage, explain how it works, and provide examples to demonstrate its functionality.

Table of Contents

  1. Introduction
  2. subSequence Method Syntax
  3. Examples
    • Retrieving a Subsequence
    • Handling Edge Cases
  4. Conclusion

Introduction

The subSequence() method is a member of the StringBuffer class in Java. It allows you to extract a subsequence of characters from the StringBuffer and returns it as a CharSequence. This is useful for operations that require working with specific portions of the character sequence without modifying the original StringBuffer.

subSequence Method Syntax

The syntax for the subSequence method is as follows:

public synchronized CharSequence subSequence(int start, int end)

Parameters:

  • start - the starting index (inclusive) of the subsequence.
  • end - the ending index (exclusive) of the subsequence.

Returns:

  • A CharSequence that is a subsequence of the specified range.

Throws:

  • IndexOutOfBoundsException - if start or end are negative, if start is greater than end, or if end is greater than the length of this sequence.

Examples

Retrieving a Subsequence

The subSequence method can be used to extract a subsequence from a StringBuffer object.

Example

public class StringBufferSubSequenceExample {
    public static void main(String[] args) {
        // Create a StringBuffer object with initial content
        StringBuffer sb = new StringBuffer("Hello, World!");

        // Retrieve a subsequence from index 7 to 12
        CharSequence subSeq = sb.subSequence(7, 12);

        // Print the subsequence
        System.out.println("Subsequence: " + subSeq);
    }
}

Output:

Subsequence: World

Handling Edge Cases

It is important to handle cases where the specified indices are out of bounds or invalid.

Example

public class StringBufferSubSequenceExample {
    public static void main(String[] args) {
        // Create a StringBuffer object with initial content
        StringBuffer sb = new StringBuffer("Hello, World!");

        try {
            // Attempt to retrieve a subsequence with an invalid range
            CharSequence subSeq = sb.subSequence(12, 7);
        } catch (IndexOutOfBoundsException e) {
            // Handle the exception
            System.out.println("Error: " + e.getMessage());
        }

        try {
            // Attempt to retrieve a subsequence with an end index greater than the length
            CharSequence subSeq = sb.subSequence(7, 20);
        } catch (IndexOutOfBoundsException e) {
            // Handle the exception
            System.out.println("Error: " + e.getMessage());
        }

        try {
            // Attempt to retrieve a subsequence with a negative start index
            CharSequence subSeq = sb.subSequence(-1, 5);
        } catch (IndexOutOfBoundsException e) {
            // Handle the exception
            System.out.println("Error: " + e.getMessage());
        }
    }
}

Output:

Error: start 12, end 7
Error: end 20
Error: start -1

Conclusion

The StringBuffer.subSequence() method in Java provides a way to extract a subsequence of characters from a StringBuffer object. By understanding how to use this method, you can efficiently work with specific portions of the character sequence without modifying the original StringBuffer. This method is particularly useful for applications that require read-only access to subsequences of the character data.

Comments