Share Button
Tìm hiểu xử lý xâu trong lập trình java (p2)
09
September
2013

Tiếp theo bài viết Tìm hiểu xử lý xâu trong lập trình java, trung tâm đào tạo khóa học lập trình java đà nẵng  sẽ cùng với các bạn tìm hiễu chi tiết hơn”

– char [] toCharArray( )

Phương thức này chuyển chuỗi thành một mảng ký tự. Ví dụ:

String text = new String(“Hello World”);

char textArray[] = text.toCharArray( );

– int indexOf(String sunString )

Phương thức này trả về thứ tự của một ký tự nào đó, hoặc một chuỗi trong phạm vi một chuỗi. Các câu lệnh sau biểu diễn các cách khác nhau của việc sử dụng hàm.

String day = new String(“Sunday”);

int index1 = day.indexOf(‘n’);

//chứa 2

int index2 = day.indexOf(‘z’,2);

//chứa –1 nếu “z” không tìm thấy tại vị trí 2.

int index3 = day.indexOf(“Sun”);

//chứa mục 0

– String toUpperCase( )

Phương thức này trả về chữ hoa của chuỗi.

String lower = new String(“good morning”);

System.out.println(“Uppercase: ”+lower.toUpperCase( ));

– String toLowerCase( )

Phương thức này trả về chữ thường của chuỗi.

String upper = new String(“JAVA”);

System.out.println(“Lowercase: “+upper.toLowerCase( ));

– String trim()

Phương thức này cắt bỏ khoảng trắng hai đầu chuỗi. Hãy thử đoạn mã sau để thấy sự khác nhau trước và sau khi cắt bỏ khoảng trắng.

String space = new String(“ Spaces “);

System.out.println(space);

System.out.println(space.trim()); //Sau khi cắt bỏkhoảng trắng

– boolean equals(String s)

Phương thức này so sánh nội dung của hai đối tượng chuỗi.

String name1 = “Java”, name2 = “JAVA”;

boolean flag = name1.equals(name2);

Biến “flag” chứa giá trịfalse.

– Các phương thức valueOf được nạp chồng để cho phép chuyển một giá trị thành xâu static String valueOf(Object obj)//Chuyển một đối tượng thành xâu, bẳng cách gọi đến phương thức toString của đối tượng objstatic String valueOf(char[] characters)//Chuyển mảng các ký tự thành xâu.

static String valueOf(boolean b)

//Chuyển một giá trị logic thành xâu, xâu nhận được là “true” hoặc “false” tương ứng với giá trị true hoặc false của bstatic String valueOf(char c)

//Chuyển kí tự thành xâu static String valueOf(int i)//chuyển một sốnguyên thành xâu

static String valueOf(long l)

//Chuyển một giá trịlong thành xâu static String valueOf(float f)

//chuyển một giá trịfloat thành xâu

static String valueOf(double d)

//chuyển một giá trịdouble thành xâu

2. Lớp StringBuffer

Lớp StringBuffer cung cấp các phương thức khác nhau để thao tác một đối tượng dạng chuỗi. Các đối tượng của lớp này rất mềm dẻo, đó là các ký tự và các chuỗi có thể được chèn vào giữa đối tượng StringBuffer, hoặc nối thêm dữ liệu vào tại vị trí cuối. Lớp này cung cấp nhiều phương thức khởi tạo. Chương trình sau minh hoạ cách sử dụng các phương thức khởi tạo khác nhau để tạo ra các đối tượng của lớp này.

class StringBufferCons{

public static void main(String args[]){

StringBuffer s1 = new StringBuffer();

StringBuffer s2 = new StringBuffer(20);

StringBuffer s3 = new StringBuffer(“StringBuffer”);

System.out.println(“s3 = “+ s3);

System.out.println(s2.length()); //chứa 0

System.out.println(s3.length()); //chứa 12

System.out.println(s1.capacity()); //chứa 16

System.out.println(s2.capacity()); //chứa 20

System.out.println(s3.capacity()); //chứa 28

}

}

“length()” và “capacity()” của StringBuffer là hai phương thức hoàn toàn khác nhau. Phương thức “length()” đề cập đến số các ký tự mà đối tượng thực chứa, trong khi “capacity()” trả về tổng dung lượng của một đối tượng (mặc định là 16) và số ký tự trong đối tượng StringBuffer.

Dung lượng của StringBuffer có thểthay  đổi với phương thức “ensureCapacity()”. Đối sốint đã được truyền đến phương thức này, và dung

lượng mới được tính toán như sau:

NewCapacity = OldCapacity * 2 + 2

Trước khi dung lượng của StringBuffer được đặt lại, điều kiện sau sẽ được kiểm tra:

1  Nếu dung lượng(NewCapacity) mới lớn hơn đối số  được truyền cho phương thức “ensureCapacity()”, thì dung lượng mới (NewCapacity) được đặt.

2  Nếu dung lượng mới nhỏhơn đối số  được truyền cho phương thức

“ensureCapacity()”, thì dung lượng được đặt bằng giá trị tham số truyền vào.

Chương trình sau minh hoạ dung lượng được tính toán và được đặt như thế nào.

class test{

public static void main(String args[]){

StringBuffer s1 = new StringBuffer(5);

System.out.println(“Dung lượng của bộnhớ  đệm =

“+s1.capacity()); //chứa 5

s1.ensureCapacity(8);

System.out.println(“Dung lượng của bộnhớ  đệm =

“+s1.capacity()); //chứa 12

s1.ensureCapacity(30);

System.out.println(“Dung lượng của bộnhớ  đệm =

“+s1.capacity()); //chứa 30

}

}

Trong đoạn mã trên, dung lượng ban đầu của s1 là 5. Câu lệnh s1.ensureCapacity(8);

Thiết lập dung lượng của s1 đến 12 =(5*2+2) bởi vì dung lượng truyền vào là 8 nhỏ hơn dung lượng được tính toán là 12 .

s1.ensureCapacity(30);

Thiết lập dung lượng của “s1” đến 30 bởi vì dung lượng truyền vào là 30 thì lớn hơn dung lượng được tính toán (12*2+2).

Các phương thức lớp StringBuffer Trong phần này, chúng ta sẽxem xét các phương thức của lớp StringBuffer với một chương trình.

– void append()

Phương thức này nối thêm một chuỗi hoặc một mảng ký tựvào cuối cùng của đối tượng StringBuffer. Ví dụ:

StringBuffer s1 = new StringBuffer(“Good”);

s1.append(“evening”);

Giá trịtrong s1 bây giờlà “goodevening”.

– void insert()

Phương thức này có hai tham số. Tham số đầu tiên là vịtrí chèn. Tham số thứ hai có thể là một chuỗi, một ký tự(char), một giá trị nguyên (int), hay một giá trị số thực (float) được chèn vào. Vị trí chèn sẽ lớn hơn hay bằng 0, và nhỏ hơn hay bằng chiều dài của đối tượng StringBuffer. Bất kỳ đối số nào, trừ ký tự hoặc chuỗi, được chuyển sang chuỗi và sau đó mới được chèn vào. Ví dụ:

StringBuffer str = new StringBuffer(“Java sion”);

str.insert(1,’b’);

Biến “str” chứa chuỗi “Jbava sion”.

– char charAt()

Phương thức này trả về một giá trị ký tự trong đối tượng StringBuffer tại vị trí được chỉ định.Ví dụ:

StringBuffer str = new StringBuffer(“James Gosling”);

char letter = str.charAt(6); //chứa “G”

– void setCharAt(int index, char value)

Phương thức này được sử dụng để thay thế ký tự trong một StringBuffer bằng một ký tự khác tại một vị trí được chỉ định.

StringBuffer name = new StringBuffer(“Jawa”);

name.setCharAt(2,’v’);

Biến “name” chứa “Java”.

– void setLength()

Phương thức này thiết lập chiều dài của đối tượng StringBuffer. Nếu chiều dài được chỉ định nhỏhơn chiều dài dữliệu hiện tại của nó, thì các ký tự thừa sẽ bị cắt bớt. Nếu chiểu dài chỉ định nhiều hơn chiều dài dữ liệu thì các ký tự null được thêm vào phần cuối của StringBuffer

StringBuffer str = new StringBuffer(10);

str.setLength(str.length() +10);

– char [] getChars()

Phương thức này được sử dụng để trích ra các ký tự từ đối tượng StringBuffer, và sao chép chúng vào một mảng. Phương thức getChars() có bốn tham số sau:

Chỉ số đầu: vị trí bắt đầu, từ nơi mà ký tự được lấy ra.

Chỉ số kết thúc: vị trí kết thúc

Mảng: Mảng đích, nơi mà các ký tự được sao chép.

Vị trí bắt đầu trong mảng đích: Các ký tự được sao chép vào mảng đích từ vị trí này.

Ví dụ:

StringBuffer str = new StringBuffer(“Leopard”);

char ch[] = new char[10];

str.getChars(3,6,ch,0);

Bây giờbiến “ch” chứa “par”

– void reverse()

Phương thức này đảo ngược nội dung của một đối tượng StringBuffer, và trả về một đối tượng StringBuffer khác. Ví dụ:

StringBuffer str = new StringBuffer(“devil”);

StringBuffer strrev = str.reverse();

Biến “strrev” chứa “lived”.

Đăng bình luận

Thành viên bình luận

  • 3531 View