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