Métodos CharBuffer subSequence() en Java con ejemplos

El método subSequence() de java.nio.CharBuffer Class se utiliza para crear un nuevo búfer de caracteres que representa la subsecuencia especificada de este búfer, en relación con la posición actual.

El nuevo búfer compartirá el contenido de este búfer; es decir, si el contenido de este búfer es mutable, las modificaciones a un búfer harán que el otro se modifique. La capacidad del nuevo búfer será la de este búfer, su posición será position() + start, y su límite será position() + end. El nuevo búfer será directo si, y solo si, este búfer es directo, y será de solo lectura si, y solo si, este búfer es de solo lectura.

Sintaxis:

public abstract CharBuffer
    subSequence(int start, int end)

Parámetro: este método toma los siguientes argumentos.

  • inicio: el índice, relativo a la posición actual, del primer carácter de la subsecuencia; debe ser no negativo y no mayor que el resto().
  • fin: el índice, relativo a la posición actual, del carácter que sigue al último carácter de la subsecuencia; no debe ser menor que inicio ni mayor que restante().

Valor devuelto: este método devuelve el nuevo búfer de caracteres.

Excepción: este método genera una excepción IndexOutOfBoundsException si las condiciones previas al inicio y al final no se cumplen.

A continuación se muestran los ejemplos para ilustrar el método subSequence():

Ejemplos 1:

// Java program to demonstrate
// subSequence() method
  
import java.nio.*;
import java.util.*;
import java.io.IOException;
  
public class GFG {
    public static void main(String[] args)
    {
        try {
  
            // Declare and initialize the char array
            char[] cb = { 'a', 'b', 'c', 'd', 'e' };
  
            // wrap the char array into CharBuffer
            // using wrap() method
            CharBuffer charBuffer
                = CharBuffer.wrap(cb);
  
            // charBuffer.position(3);
  
            // Getting new CharBuffer
            // using subSequence() method
            CharBuffer cb2 = charBuffer.subSequence(2, 4);
  
            // print the byte buffer
            System.out.println("Original CharBuffer : "
                               + Arrays.toString(
                                     charBuffer.array())
                               + "\nPosition: "
                               + charBuffer.position()
                               + "\nLimit: "
                               + charBuffer.limit()
                               + "\n\nNew Charbuffer: "
                               + Arrays.toString(
                                     cb2.array())
                               + "\nPosition: "
                               + cb2.position()
                               + "\nLimit: "
                               + cb2.limit());
        }
        catch (IndexOutOfBoundsException e) {
            System.out.println("index is out of bound");
            System.out.println("Exception throws: " + e);
        }
    }
}
Producción:

Original CharBuffer : [a, b, c, d, e]
Position: 0
Limit: 5

New Charbuffer: [a, b, c, d, e]
Position: 2
Limit: 4

Ejemplos 2: para IndexOutOfBoundsException

// Java program to demonstrate
// subSequence() method
  
import java.nio.*;
import java.util.*;
import java.io.IOException;
  
public class GFG {
    public static void main(String[] args)
    {
        try {
  
            // Declare and initialize the char array
            char[] cb = { 'a', 'b', 'c', 'd', 'e' };
  
            // wrap the char array into CharBuffer
            // using wrap() method
            CharBuffer charBuffer
                = CharBuffer.wrap(cb);
  
            // charBuffer.position(3);
  
            // Getting new CharBuffer
            // using subSequence() method
            CharBuffer cb2
                = charBuffer.subSequence(-2, 4);
  
            // print the byte buffer
            System.out.println("Original CharBuffer : "
                               + Arrays.toString(
                                     charBuffer.array())
                               + "\nPosition: "
                               + charBuffer.position()
                               + "\nLimit: "
                               + charBuffer.limit()
                               + "\n\nNew Charbuffer: "
                               + Arrays.toString(
                                     cb2.array())
                               + "\nPosition: "
                               + cb2.position()
                               + "\nLimit: "
                               + cb2.limit());
        }
        catch (IndexOutOfBoundsException e) {
            System.out.println("index is out of bound");
            System.out.println("Exception throws: " + e);
        }
    }
}
Producción:

index is out of bound
Exception throws: java.lang.IndexOutOfBoundsException

Referencia: https://docs.oracle.com/javase/9/docs/api/java/nio/CharBuffer.html#subSequence-int-int-

Publicación traducida automáticamente

Artículo escrito por RohitPrasad3 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *