Các ph ngth cl p String

Một phần của tài liệu lap trinh java - Chuơng 3. Nền Tảng Của Ngôn Ngữ Java (Trang 38 - 41)

L p trình bao bc (wrapper class)

4.6.3Các ph ngth cl p String

B ng 4.3: Các lp trình bao bc cho các ki ud li u nguyên th u.

4.6.3Các ph ngth cl p String

Trong ph n này, chúng ta s xem xét các ph ng th c c a l p String.

CharAt( )

Ph ng th c này tr v m t ký t t i m t v trí đ c bi t trong m t chu i. Ví d :

String name = new String(“Java Language”); char ch = name.charAt(5);

Bi n “ch” ch a giá tr “L”, t đĩ v trí các s b t đ u t 0.

startsWith( )

Ph ng th c này tr v giá tr ki u logic (Boolean), ph thu c vào chu i cĩ b t đ u v i m t giá tr đ c bi t khơng. Ví d :

String strname = “Java Language”;

boolean flag = strname.startsWith(“Java”);

Bi n “flag” ch a giá tr true.

endsWith( ) day Weekday Sunday Monday Hello Aptech World 1 2 3 4 N

Ph ng th c này tr v m t giá tr ki u logic (boolean), cĩ ch ng ph thu c vào chu i k t thúc v i m t giá tr đ c bi t, Ví d :

String strname = “Java Language”; boolean flag = strname.endsWith(“Java”);

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

copyValueOf( )

Ph ng th c này tr v m t chu i đ c rút ra t m t m ng ký t đ c truy n nh m t đ i s . Ph ng th c này c ng l y hai tham s nguyên. Tham s đ u tiên ch đ nh v trí t n i các ký t ph i đ c rút ra, và tham s th hai ch đnh s ký t đ c rút ra t m ng. Ví d :

char name[] = {‘L’,’a’,’n’,’g’,’u’,’a’,’g’,’e’}; String subname = String .copyValueOf(name,5,2);

Bây gi bi n “subname” ch a chu i “ag”.

toCharArray( )

Ph ng th c này l y m t chu i, và chuy n nĩ vào m t m ng ký t . Ví d :

String text = new String(“Hello World”); Char textArray[] = text.toCharArray( );

indexOf( )

Ph ng th c này tr v th t c a m t ký t đ c bi t, 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 c a m u t 1st

toUpperCase( )

Ph ng th c này tr v ch hoa c a chu i thơng qua hàm.

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

System.out.println(“Uppercase: ”+lower.toUpperCase( )); (adsbygoogle = window.adsbygoogle || []).push({});

toLowerCase( )

Ph ng th c này tr v ch th ng c a chu i thơng qua hàm.

String upper = new String(“APTECH”);

Core Java

trim()

Ph ng th c này c t b kho ng tr ng trong đ i t ng String. 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.ut.println(spaces);

System.out.println(spaces.trim()); //Sau khi c t b kho ng tr ng

equals()

Ph ng th c này so sánh n i dung c a hai đ i t ng chu i.

String name1 = “Aptech”, name2 = “APTECH”; boolean flag = name1.equals(name2);

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

4.6.4 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 các ph ng th c kh i t o n p ch ng . Ch ng trình sau bi u di n làm th nào đ 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.

Ch ng trình 4.6

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 đ i t ng StringBuffer là hồn tồn khác nhau. Ph ng th c “length()”đ c p đ n s các ký t mà đ i t ng đ a ra, trong khi “capacity()” tr v t ng dung l ng m c đ nh c a m t đ i t ng (16), và s các ký t trong đ i t ng StringBuffer.

Dung l ng c a b đ m chu i cĩ th thay đ i v i ph ng th c “ensureCapacity()”đ c cung c p trong l p. i s int đã đ c truy n đ n ph ng th c này, và phù h p v i m t dung l ng m i đ c tính tốn nh sau:

New Capacity = Old Capacity * 2 + 2

Tr c khi dung l ng c a b nh trung gian đ c c p phát dung l ng đ c tính tốn m i,

đi u ki n sau s đ c ki m tra:

N u dung l ng m i l n h n đ i s đ c truy n đ n ph ng th c “ensureCapacity()”, thì dung l ng b nh đ m đ c c p phát

M t dung l ng đ c tính tốn m i.

N u dung l ng m i nh h n đ i s đ c truy n đ n ph ng th c “ensureCapacity()”, thì dung l ng b nh đ m đ c c p phát giá tr c a đ i s đ c truy n đ n.

Ch ng trình 4.7 minh ho làm th nào dung l ng đ c tính tốn và đ c c p phát.

Ch ng trình 4.7 (adsbygoogle = window.adsbygoogle || []).push({});

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 trên lý thuy t là (8) thì nh h n dung l ng đ c tính tốn là (12) .

s1.ensureCapacity(30);

Thi t l p dung l ng c a “s1” đ n 30 b i vì dung l ng trên lý thuy t là (30) thì l n h n dung l ng đ c tính tốn (12*2+2).

Một phần của tài liệu lap trinh java - Chuơng 3. Nền Tảng Của Ngôn Ngữ Java (Trang 38 - 41)