Java – StringBuffer

Trong bài viết này chúng ta sẽ cùng nhau tìm hiểu về StringBuffer trong ngôn ngữ lập trình Java. Ngoài ra, chúng ta sẽ tìm hiểu thêm về constructor của Java, và các phương thức.

  • StringBuffer class trong Java có thể coi là ngang hàng với một kiểu của String, mang đến nhiều ứng dụng thực tiễn của String
  • StringBuffer có thể tăng và thay đổi giá trị chuỗi các ký tự nối tiếp trong khi String bị cố định độ dài, các chuỗi ký tự nối tiếp là immutable
  • StringBuffer có thể có các ký tự và các chuỗi con được chèn vào giữa hoặc được nối thêm vào đầu
  • Nó có một cơ chế cơ học để tạo thêm khoảng trống cho những bổ sung và đôi lúc có các ký tự thêm vào được phân bổ lại theo yêu cầu, để cho phép khoảng trống tăng lên

Constructor và phương thức

Các constructor và phương thức của StringBuffer được trình bày như bên dưới đây

Constructor trong StringBuffer

  • StringBuffer(): Nó dành khoảng trống cho 16 ký tự trong khi không cần phân bổ lại
StringBuffer s=new StringBuffer();
  • StringBuffer( int size): Nhận vào tham số size để thiết lập kích thước của bộ đệm
StringBuffer s=new StringBuffer(20);
  • StringBuffer(String str): Nó dành khoảng trống cho 16 ký tự không cần phân bổ lại và nhận tham số String str để thiết lập giá trị mặc định cho StringBuffer object
StringBuffer s=new StringBuffer("HELLO");

Phương thức trong StringBuffer

length( ) and capacity( )

Độ dài của StringBuffer trong Java được xác định bằng cách sử dụng phương thức length(), trong khi đó toàn bộ phần được cấp cho được xác định bằng phương thức capacity()

Ví dụ

import java.io.*;
class Example
{
   public static void main (String[] args)
   {
       StringBuffer s=new StringBuffer("HELLO");
       int p=s.length();
       int q=s.capacity();
       System.out.println("Length of string HELLO=" + p);
       System.out.println("Capacity of string HELLO=" + q);
   }
}

Kết quả

Length of string DataFlair=13
Capacity of string DataFlair=29

append( )

Phương thức append thường được dùng để nối thêm chuỗi vào sau của một chuỗi hiện tại

Dưới đây là một số hình thức của phương thức

StringBuffer append(String str)
StringBuffer append(int num)

Ví dụ

import java.io.*;
class Example
{
   public static void main (String[] args)
   {
       StringBuffer s=new StringBuffer("example");
       s.append("s");
       System.out.println(s);
       s.append(1);
       System.out.println(s);    }
}

Kết quả

examples
examples1

insert( )

Thường được dùng để thêm vào đoạn text vào một vị trí mong muốn trong chuỗi. Có một định dạng như sau

StringBuffer insert(int index, String str)
StringBuffer insert(int index, char ch)

Ở đây thì index được dùng để xác định vị trí mà chuỗi hoặc ký tự sẽ chèn vào

Ví dụ

import java.io.*;
class Example
{
   public static void main (String[] args)
   {
       StringBuffer s=new StringBuffer("DataData");
       s.insert(5, "for");
       System.out.println(s);
       s.insert(0, 5);
       System.out.println(s);
       s.insert(3, true);
       System.out.println(s);
       s.insert(5, 41.35d);
       System.out.println(s);
       s.insert(8, 41.35f);
       System.out.println(s);
       char data_arr[] = { 'p', 'a', 'w', 'a', 'n' };
       s.insert(2, data_arr);
       System.out.println(s);
   }
}

Kết quả

DataforData
5DataforData
5Getrueatafordata
5Getr41.35ueataforData
5Getr41.41.3535ueTaforData
5Gpawanetr41.41.3535ueatafordata

reverse( )

Nó được dùng để đảo ngược các ký tự. Hàm này trả về một object ngược so với object mà nó tham chiếu tới

import java.io.*;
class Example
{
   public static void main (String[] args)
   {
       StringBuffer s=new StringBuffer("Example");
       s.reverse();
       System.out.println(s);        }
}

Kết quả

elpmaxE

delete( ) và deleteCharAt( )

Phương thức delete() được dùng để xóa một chuỗi các ký tự liên tiếp trong object đang gọi. Ở đây startIndex dùng để chỉ định vị trí index bắt đầu xòa và endIndex dùng để xác định vị trí index cuối cùng mà chúng ta sẽ xóa. Như vậy chuỗi con sẽ được xóa từ vị trí startIndex đến endIndex -1. Tiếp theo nó sẽ trả về một StringBuffer object. Hàm deleteCharAt( ) dùng để xóa ký tự tại vị trí cố định loc.

Định dạng của 2 phương thức như sau

StringBuffer delete(int startIndex, int endIndex)
StringBuffer deleteCharAt(int loc)

Ví dụ

import java.io.*;
class Example
{
   public static void main (String[] args)
   {
       StringBuffer s=new StringBuffer("DeleteExample");
       s.delete(0,6);
       System.out.println(s);
       s.deleteCharAt(5);
       System.out.println(s);  
  }
}

Kết quả

Example
Exampe

replace( )

Dùng để thay thế một bộ ký tự bằng bộ ký tự khác trong StringBuffer. Chuỗi ký tự con cần thay thế được xác định dựa theo index bắt đầu và index kết thúc. Tức là từ startIndex đến endIndex-1

Định dạng của hàm như sau

StringBuffer replace(int startIndex, int endIndex, String str)

Ví dụ

import java.io.*;
class Example
{
   public static void main (String[] args)
   {
       StringBuffer s=new StringBuffer("Flair");
       s.replace(5,8,"are");
       System.out.println(s);    }
}

Kết quả

Flairare

ensureCapacity( )

Nó thường được dùng để tăng khả năng của object StringBuffer. Khả năng mới này thường được thiết lập theo giá trị chỉ định hoặc nhân đôi khả năng hiện tại của StringBuffer, tùy theo giá trị nào lớn hơn. Ở đây, capability được dùng để chỉ định kích thước của bộ đệm

void ensureCapacity(int capacity).

 

 

You May Also Like

About the Author: Nguyen Dinh Thuc

Leave a Reply

Your email address will not be published.