Điểm Quan Trọng Mô Tả Bản chất không thay đổi Đối tượng String là immutable, nghĩa là sau khi tạo ra, giá trị của nó không thể thay đổi. Kết nối chuỗi Bạn có thể nối chuỗi bằng toán tử + hoặc phương thức concat(). Kết quả là một chuỗi mới. So sánh chuỗi Sử dụng equals() để kiểm tra hai chuỗi có giống nhau không. Sử dụng compareTo() để so sánh theo thứ tự từ điển. Trích xuất và tìm kiếm Sử dụng substring() để trích xuất một phần của chuỗi. Sử dụng indexOf() để tìm vị trí của một chuỗi con trong chuỗi. Định dạng chuỗi Sử dụng String.format() và printf() để định dạng chuỗi theo mẫu. Chuỗi Regular Expression Sử dụng java.util.regex để xử lý chuỗi theo mẫu với Regular Expression. Xử lý Unicode Java hỗ trợ Unicode cho phép xử lý ký tự và chuỗi từ nhiều bộ mã khác nhau. Phương thức tiện ích Lớp String cung cấp các phương thức tiện ích như toLowerCase(), toUpperCase(), trim() và nhiều hơn nữa.
- Các phương thức :
Phương thức Mô tả Truy cập ký tự: charAt()Trả về ký tự tại vị trí chỉ định trong chuỗi. So sánh và kiểm tra: compareTo()So sánh hai chuỗi dựa trên thứ tự từ điển. equals()So sánh hai chuỗi để kiểm tra xem chúng có bằng nhau không. equalsIgnoreCase() compareToIgnoreCase()So sánh hai chuỗi có giống nhau không mà không phân biệt chữ hoa chữ thường. So sánh hai chuỗi dựa trên thứ tự từ điển mà không phân biệt chữ hoa chữ thường. contains()Kiểm tra xem chuỗi có chứa một chuỗi con không. endsWith()Kiểm tra xem chuỗi có kết thúc bằng một chuỗi con không. startsWith()Kiểm tra xem chuỗi có bắt đầu bằng một chuỗi con không. isEmpty()Kiểm tra xem chuỗi có rỗng không. Biến đổi và thay thế: concat()Nối chuỗi hiện tại với chuỗi được cung cấp. replace() replaceFirst()Thay thế tất cả các ký tự hoặc chuỗi con bằng một ký tự hoặc chuỗi mới. Thay thế chuỗi con đầu tiên trong chuỗi ban đầu bằng chuỗi truyền vào. replaceAll()Thay thế tất cả các chuỗi con phù hợp với biểu thức chính quy. trim()Loại bỏ các khoảng trắng từ đầu và cuối chuỗi. toLowerCase()Chuyển đổi chuỗi thành chữ thường. toUpperCase()Chuyển đổi chuỗi thành chữ hoa. Tìm kiếm và trích xuất: indexOf()Trả về chỉ số xuất hiện đầu tiên của một chuỗi con. lastIndexOf()Trả về chỉ số xuất hiện cuối cùng của một chuỗi con. substring()Trích xuất một phần của chuỗi. Phân tách và nối: split()Phân tách chuỗi thành một mảng các chuỗi con. join()Nối các chuỗi với một chuỗi phân cách. Định dạng và biến đổi: format()Định dạng chuỗi bằng cách sử dụng các đối số được cung cấp. valueOf()Chuyển đổi các giá trị của các loại dữ liệu khác nhau thành chuỗi. Chuyển đổi sang mảng và bytes: toCharArray()Chuyển chuỗi thành mảng các ký tự. getBytes()Chuyển chuỗi thành mảng byte.
Các thao tác với chuỗi phổ biến:
Thao Tác Mô Tả Tạo chuỗi String str = "Hello"; Khởi tạo một chuỗi bằng cách gán giá trị cho một biến chuỗi. Nối chuỗi String result = str1 + str2; Sử dụng toán tử + để nối hai chuỗi lại với nhau. String result = str1.concat(str2); Sử dụng phương thức concat() để nối hai chuỗi. So sánh chuỗi boolean isEqual = str1.equals(str2); So sánh hai chuỗi để kiểm tra xem chúng có bằng nhau không. int compareResult = str1.compareTo(str2); So sánh hai chuỗi dựa trên thứ tự từ điển. Truy xuất phần tử char ch = str.charAt(index); Truy xuất ký tự tại vị trí cụ thể trong chuỗi. int length = str.length(); Trả về độ dài của chuỗi. Tìm kiếm và cắt chuỗi int index = str.indexOf(substring); Tìm vị trí xuất hiện đầu tiên của một chuỗi con trong chuỗi. String sub = str.substring(startIndex, endIndex); Trích xuất một phần của chuỗi dựa trên chỉ mục bắt đầu và kết thúc. Chuyển đổi kiểu int num = Integer.parseInt(str); Chuyển đổi chuỗi thành kiểu dữ liệu số nguyên. double num = Double.parseDouble(str); Chuyển đổi chuỗi thành kiểu dữ liệu số thực. Chuỗi Regular Expression boolean isMatch = str.matches(regex); Kiểm tra xem chuỗi có khớp với biểu thức chính quy không. String[] parts = str.split(regex); Tách chuỗi thành mảng các chuỗi con dựa trên biểu thức chính quy. Chuyển đổi String upperCase = str.toUpperCase(); Chuyển đổi chuỗi thành chữ in hoa. String lowerCase = str.toLowerCase(); Chuyển đổi chuỗi thành chữ in thường. Loại bỏ khoảng trắng String trimmed = str.trim(); Loại bỏ các khoảng trắng ở đầu và cuối chuỗi. Thay thế và Xóa String replaced = str.replace(oldChar, newChar); Thay thế một ký tự trong chuỗi bằng một ký tự khác. String replaced = str.replaceAll(regex, replacement); Thay thế tất cả các chuỗi con khớp với biểu thức chính quy bằng một chuỗi mới. String replaced = str.replaceFirst(regex, replacement); Thay thế chuỗi con đầu tiên khớp với biểu thức chính quy bằng một chuỗi mới. String removed = str.replaceAll(regex, ""); Xóa tất cả các chuỗi con khớp với biểu thức chính quy.
B. StringBuilder
| No. | Mô tả |
|---|---|
| 1. | Mutable (Biến đổi được): |
| - StringBuilder cho phép thay đổi nội dung mà không tạo ra đối tượng mới. | |
| - Giảm sự cần thiết của việc tạo ra đối tượng mới cho mỗi thay đổi. | |
| 2. | Thao tác hiệu quả: |
| - StringBuilder cung cấp các phương thức như append(), insert(), delete(), replace() và reverse() để thực hiện các thao tác sửa đổi trên chuỗi. | |
| - Sử dụng StringBuilder thay vì phép nối chuỗi trực tiếp (+) có thể cải thiện hiệu suất của ứng dụng, đặc biệt khi có nhiều thay đổi trên chuỗi. | |
| 3. | Không đồng bộ (Non-synchronized): |
| - StringBuilder không đồng bộ, không an toàn trong môi trường đa luồng mà không có sự đồng bộ hóa bổ sung. | |
| - Sử dụng StringBuffer nếu cần chuỗi có tính đồng bộ trong môi trường đa luồng. | |
| 4. | Khả năng thay đổi động: |
| - Dễ dàng thêm hoặc loại bỏ ký tự từ chuỗi StringBuilder bằng append(), insert(), delete() và replace(). | |
| - Xây dựng và sửa đổi các chuỗi động trở nên dễ dàng và hiệu quả. |
Các phương thức :
| Phương Thức | Mô Tả |
|---|---|
| Thêm nội dung | |
| append(boolean b) | Thêm biểu diễn chuỗi của đối số boolean vào cuối chuỗi. |
| append(char c) | Thêm biểu diễn chuỗi của đối số char vào cuối chuỗi. |
| append(String str) | Thêm một chuỗi vào cuối chuỗi. |
| append(Object obj) | Thêm biểu diễn chuỗi của đối số Object vào cuối chuỗi. |
| Chèn nội dung | |
| insert(int offset, char c) | Chèn biểu diễn chuỗi của đối số char vào vị trí xác định. |
| insert(int offset, String str) | Chèn một chuỗi vào vị trí xác định trong chuỗi. |
| Xóa nội dung | |
| delete(int start, int end) | Xóa các ký tự trong một phần của chuỗi. |
| deleteCharAt(int index) | Xóa ký tự tại vị trí xác định trong chuỗi. |
| Thay thế nội dung | |
| replace(int start, int end, String str) | Thay thế một phần của chuỗi bằng một chuỗi khác. |
| Đảo ngược chuỗi | |
| reverse() | Đảo ngược chuỗi. |
| Trích xuất thông tin | |
| charAt(int index) | Trả về ký tự tại vị trí xác định trong chuỗi. |
| substring(int start, int end) | Trả về một chuỗi con từ vị trí bắt đầu đến vị trí kết thúc xác định. |
| Thực hiện các thao tác khác | |
| length() | Trả về độ dài của chuỗi. |
| indexOf(String str) | Trả về vị trí của chuỗi con đầu tiên trong chuỗi. |
| toString() | Chuyển đổi StringBuilder thành chuỗi. |
Các thao tác với chuỗi phổ biến:
| Thao Tác | Mô Tả |
|---|---|
| Khởi tạo StringBuilder | |
| StringBuilder sb = new StringBuilder(); | Khởi tạo một đối tượng StringBuilder trống. |
| StringBuilder sb = new StringBuilder("Hello"); | Khởi tạo một đối tượng StringBuilder với một chuỗi ban đầu. |
| Thêm nội dung | |
| sb.append(" world"); | Thêm chuỗi vào cuối của StringBuilder. |
| sb.insert(5, "beautiful "); | Chèn chuỗi vào vị trí xác định trong StringBuilder. |
| Xóa nội dung | |
| sb.delete(startIndex, endIndex); | Xóa phần từ từ vị trí startIndex đến endIndex. |
| sb.deleteCharAt(index); | Xóa ký tự tại vị trí xác định trong StringBuilder. |
| Thay thế nội dung | |
| sb.replace(startIndex, endIndex, "newString"); | Thay thế một phần của chuỗi bằng một chuỗi mới. |
| Đảo ngược chuỗi | |
| sb.reverse(); | Đảo ngược chuỗi trong StringBuilder. |
| Truy xuất thông tin | |
| sb.charAt(index); | Trả về ký tự tại vị trí xác định trong StringBuilder. |
| sb.length(); | Trả về độ dài của chuỗi trong StringBuilder. |
| Tìm kiếm và cắt chuỗi | |
| sb.indexOf("substring"); | Tìm vị trí xuất hiện đầu tiên của một chuỗi con trong StringBuilder. |
| sb.substring(startIndex, endIndex); | Trích xuất một phần của chuỗi trong StringBuilder dựa trên chỉ mục bắt đầu và kết thúc. |
| Chuyển đổi thành chuỗi | |
| String result = sb.toString(); | Chuyển đổi StringBuilder thành một chuỗi thông thường để sử dụng. |
C. StringBuffer
| No. | Mô tả |
|---|---|
| 1. | Đồng bộ (Synchronized): |
| - StringBuffer được thiết kế để làm việc trong môi trường đa luồng mà không cần lo lắng về vấn đề an toàn. | |
| - Các phương thức của StringBuffer được đồng bộ hóa để đảm bảo chỉ có một luồng có thể truy cập vào đối tượng StringBuffer tại một thời điểm. | |
| 2. | Mutable (Biến đổi được): |
| - Tương tự như lớp StringBuilder, các đối tượng StringBuffer cũng là biến đổi được, cho phép thay đổi nội dung của chúng mà không cần tạo ra đối tượng mới. | |
| 3. | Thao tác sửa đổi chuỗi: |
| - StringBuffer cung cấp các phương thức append(), insert(), delete(), replace(), và reverse() để thực hiện các thao tác sửa đổi trên chuỗi. | |
| - Các phương thức này cho phép thêm, chèn, xóa, thay thế và đảo ngược các phần của chuỗi một cách dễ dàng và linh hoạt. | |
| 4. | Sử dụng trong môi trường đa luồng: |
| - Với tính đồng bộ của nó, lớp StringBuffer thích hợp cho việc sử dụng trong môi trường đa luồng, nơi nhiều luồng có thể cần truy cập và sửa đổi cùng một đối tượng StringBuffer mà không gây ra xung đột hoặc lỗi |
D. Sự khác nhau
| String | StringBuilder | StringBuffer | |
|---|---|---|---|
| Immutable | Có (Không thay đổi) | Không | Không |
| Thay đổi | Tạo đối tượng mới | Thay đổi nội dung mà không tạo đối tượng mới | Thay đổi nội dung mà không tạo đối tượng mới |
| Hiệu suất | Thấp (Tạo đối tượng mới tốn nhiều bộ nhớ) | Cao (Không tạo đối tượng mới) | Trung bình (Cần đồng bộ hóa) |
| Đồng bộ hóa | Không | Không | Có (An toàn trong môi trường đa luồng) |
Tóm lại :
- String được sử dụng khi cần tính không thay đổi.
- StringBuilder được sử dụng khi cần hiệu suất cao và không cần đồng bộ.
- StringBuffer được sử dụng khi cần đảm bảo tính nhất quán và an toàn trong môi trường đa luồng.
E. Lớp Character
Lớp Character cung cấp các phương thức tiện ích cho việc xử lý và kiểm tra các thuộc tính của ký tự, giúp làm cho việc làm việc với ký tự trở nên dễ dàng và linh hoạt.
| Phương Thức | Mô Tả |
|---|---|
| Kiểm tra các thuộc tính của ký tự | |
isLetter(char ch) | Kiểm tra xem ký tự có phải là một chữ cái không. |
isDigit(char ch) | Kiểm tra xem ký tự có phải là một số không. |
isUpperCase(char ch) | Kiểm tra xem ký tự có phải là chữ cái in hoa không. |
isLowerCase(char ch) | Kiểm tra xem ký tự có phải là chữ cái in thường không. |
isWhitespace(char ch) | Kiểm tra xem ký tự có phải là một khoảng trắng không. |
| Chuyển đổi giữa các kiểu dữ liệu | |
char c = Character.toUpperCase(char ch) | Chuyển đổi một ký tự thành chữ in hoa. |
char c = Character.toLowerCase(char ch) | Chuyển đổi một ký tự thành chữ in thường. |
int digit = Character.getNumericValue(char ch) | Trả về giá trị số của ký tự, nếu ký tự là một chữ số. |
| Các phương thức khác | |
char[] charArray = Character.toChars(int codePoint) | Chuyển đổi một mã Unicode thành một mảng ký tự. |
int codePoint = Character.codePointAt(CharSequence seq, int index) | Trả về mã Unicode của ký tự tại vị trí được chỉ định trong một chuỗi. |
int codePointCount(CharSequence seq, int beginIndex, int endIndex) | Đếm số lượng mã Unicode trong một phạm vi chuỗi được chỉ định. |

Không có nhận xét nào:
Đăng nhận xét