String trong java với ví dụ cụ thể

String là một chuỗi các ký tự kết hợp lại. Ví chọ “Deft” là một chuỗi gồm 3 ký tự ‘D’, ‘e’, ‘f’, ‘t’ kết hợp lại.

String java trong java là một object immutable, nghĩa là bạn khônng thể thay đổi giá trị của string khi nó đã được khởi tạo.

Khởi tạo String trong java

Trong java chúng ta có 2 cách để tạo một chuỗi

  1. Chuỗi ký tự 
  2. Sử dụng từ khoá new

Tạo string bằng một chuỗi ký tự

Ở trên mình đã khởi tạo 2 chuỗi str1 và str2 có chuỗi ký tự hoàn toàn giống. 

Ở trên giống ta đang sử dụng phép gán để khởi tạo một chuỗi, điều này không giống như việc khởi tạo một object đâu nhé(khởi tạo một object ra sao thì mình sẽ nói ở phần sau nha, các bạn cố gắng theo dõi). Khi chúng ta gán một chuỗi như vậy thì trình biên dịch sẽ tiến hành khởi tạo hai chuỗi với giá trị là chuỗi chúng ta đưa vào(shareprogramming) sau đó gán lại cho 2 str1 và str2 của chúng ta. 

Một điểm hay là nếu như object chứa giá trị mà chúng ta đưa vào đã có sẵn trong memory thì trình biên dịch sẽ không khởi tạo nữa mà sẽ lấy thẳng object đã tồn tại gán cho object chúng ta vừa mới tạo. Có nghĩa là mặc dù chúng ta có 2 biến(instance) nhưng chỉ tham chiếu đến một object thôi.

Quay trở lại với đoạn code ở trên của chúng ta. Mình sẽ giải thích từng bước:

B1: str1 = “shareprogramming” => trình biên dịch thấy rằng trong memory chưa có object string nào có giá trị tương tự cho nên nó sẽ tiến hành tạo ra object string (new String(“shareprogramming”) và gán cho str1.

B2: str2 = “shareprogramming” => trình biên dịch thấy rằng trong memory đã có sẵn object string có giá trị tương tự nên nó sẽ gán thẳng cho str2 mà không khởi tạo nữa.

Khởi tạo string bằng từ khoá new

Đây là cách chính thống đây các bạn, sử dụng từ khoá new. Lưu ý nếu như chúng ta khởi tạo chuỗi bằng từ khoá new thì trình biên dịch sẽ không tiến hành kiểm tra trong memory có tồn tại object nào có giá trị như vậy chưa mà nó sẽ tiến hành khởi tạo cả 2 object cho dù nó có cùng giá trị nhé.

Với đoạn code trên thì chúng ta sẽ được 2 object riêng biệt không liên quan gì nhau hết nha các bạn.

String là object immutable

Nảy giờ nói nhiều về object immutable không biết nó có ảnh hưởng gì khi chúng ta làm việc với String không nhỉ? 

Như mình nêu ở trên object immutable thì chúng ta sẽ không thể thay đổi khi nó đã được khỏi tạo. 

Chúng ta cùng xem đoạn code sau

Output: 

hello
hello shareprogramming

Ôi nhìn output sao mà kỳ quá vậy? sao mình nói object string không thể thay đổi sau khi nó đã được khởi tạo thì đáng lẽ chúng ra phải nhận output là hello hello chứ nhỉ!

Um hử, như vậy nè, để mình nói cho nghe. Khi bạn gán str = “hello” trình biên dịch sẽ tiến hành khởi tạo object string và gán cho str. Đến khi bạn lại gán str = “hello shareprogramming” như đúng bản chất nó không thay đổi giá trị object “hello” mà nó sẽ tạo tạo một object mới với giá trị chuỗi là “hello shareprogramming” và gán lại cho str. Đó là lý do chúng ta có output như trên.

Các method thường sử dụng của String 

STT Method Return
1 char charAt(index) Ký tự tại vị trí được chỉ định
2 int length() Độ dài của chuỗi
3 String substring(int beginindex) Chuỗi con bắt đầu từ chỉ số beginidex đến hết chuỗi
4 String substring(int begin, int emd) Chuỗi con bắt đầu tại begin kết thúc tại end
5 boolean contains(CharSequence s) true nếu có chứa chuỗi con s, ngược lại false
6 boolean equals(Object other) true nếu 2 chuỗi bằng nhau.
7 boolean isEmpty() true nếu chuỗi rỗng, ngược lại false
8 String concat(String str) Nối 2 chuỗi
9 String replace(char old, char new) Thay thế tất cả các ký tự old thành new có chứa trong chuỗi. Trả về chuỗi đã được thay đổi.
10 String[] split(String regex) Trả về chuỗi được tách ra theo regex 
11 String[] split(String regex, int limit) Trả về chuỗi được tách ra theo regex với số lượng giới hạn
12 int indexOf(String subSttr) Trả về vị trí của chuỗ subStr
13 String toLowerCase() Chuỗi được thay thế tất cả các chữ in hoa thành chữ thường
14 String toUpperCase() Chuỗi được thay thế tất cả chữ thường thành chữ hoa

Ở trên là các method chúng ta thường sử dụng trong String, ngoài ra nó còn có rất nhiều method khác nữa nhé.

Bài tập thực hành

1, Viết chương trình java tìm ký tự tại vị trí index, index được nhập vào từ bàn phím.

2, So sánh str1 với str2, nếu str1 lớn hơn str2 xuất ra “ok”, nhỏ hơn “ko”, bằng nhau thì xuất ra “equals”.

3, Tìm một chuỗi con trong chuỗi cha. Nếu có in ra true, ngược lại false.

4, Nối 2 chuỗi str1 và str2 sau đó in ra màn hình. str1, str2 nhập từ bàn phím

Bài tham khảo

 

‹Previous Next›

Please follow and like us:
error

Leave a Reply

Your email address will not be published. Required fields are marked *