Trong ngôn ngữ lập trình Java, lớp String được sử dụng rộng rãi để thao tác với chuỗi ký tự. Chuỗi ký tự là một tập hợp các ký tự nằm trong một dãy, được định nghĩa bởi lớp String. Lớp này cung cấp hàng loạt các phương thức tiện ích để thao tác với chuỗi một cách dễ dàng và hiệu quả.
Khởi tạo chuỗi
Có nhiều cách để khởi tạo một chuỗi trong Java:
- Sử dụng dấu ngoặc kép:
String str = "Hello, World!";
- Sử dụng từ khóa
new
:String str = new String("Hello, World!");
Các phương thức tiện ích của lớp String
-
length(): Trả về độ dài của chuỗi.
String str = "Hello, World!"; int length = str.length(); // length = 13
-
charAt(int index): Trả về ký tự ở vị trí chỉ định trong chuỗi.
char ch = str.charAt(0); // ch = 'H'
-
substring(int beginIndex): Trả về một phần của chuỗi, bắt đầu từ vị trí chỉ định đến cuối chuỗi.
String subStr = str.substring(7); // subStr = "World!"
-
substring(int beginIndex, int endIndex): Trả về một phần của chuỗi từ vị trí bắt đầu đến vị trí kết thúc.
String subStr = str.substring(7, 12); // subStr = "World"
-
indexOf(String str): Trả về vị trí xuất hiện đầu tiên của chuỗi con trong chuỗi gốc. Nếu không tìm thấy, trả về -1.
int index = str.indexOf("World"); // index = 7
-
lastIndexOf(String str): Trả về vị trí xuất hiện cuối cùng của chuỗi con trong chuỗi gốc.
int lastIndex = str.lastIndexOf('o'); // lastIndex = 8
-
equals(Object anObject): So sánh chuỗi hiện tại với đối tượng chỉ định.
boolean isEqual = str.equals("Hello, World!"); // isEqual = true
-
equalsIgnoreCase(String anotherString): So sánh chuỗi hiện tại với chuỗi chỉ định mà không phân biệt chữ hoa và chữ thường.
boolean isEqualIgnoreCase = str.equalsIgnoreCase("hello, world!"); // isEqualIgnoreCase = true
-
toLowerCase(): Chuyển tất cả các ký tự trong chuỗi thành chữ thường.
String lowerStr = str.toLowerCase(); // lowerStr = "hello, world!"
-
toUpperCase(): Chuyển tất cả các ký tự trong chuỗi thành chữ hoa.
String upperStr = str.toUpperCase(); // upperStr = "HELLO, WORLD!"
-
trim(): Loại bỏ khoảng trắng ở đầu và cuối chuỗi.
String trimmedStr = str.trim(); // nếu str = " Hello, World! " thì trimmedStr = "Hello, World!"
-
replace(CharSequence target, CharSequence replacement): Thay thế tất cả các ký tự hoặc chuỗi con phù hợp với giá trị chỉ định trong chuỗi gốc.
String replacedStr = str.replace("World", "Java"); // replacedStr = "Hello, Java!"
Lớp StringBuilder và StringBuffer
Trong những trường hợp cần chỉnh sửa chuỗi nhiều lần, việc sử dụng lớp StringBuilder hoặc StringBuffer có thể hiệu quả hơn so với lớp String. Lý do là vì các chuỗi trong lớp String là bất biến (immutable), mỗi khi thay đổi chuỗi sẽ tạo ra một đối tượng mới. Trong khi đó, StringBuilder và StringBuffer cho phép thay đổi trực tiếp trên đối tượng hiện có.
-
StringBuilder: Hiệu năng cao hơn nhưng không an toàn trong môi trường đa luồng.
StringBuilder sb = new StringBuilder("Hello"); sb.append(", World!");
-
StringBuffer: An toàn trong môi trường đa luồng nhưng chậm hơn StringBuilder.
StringBuffer sb = new StringBuffer("Hello"); sb.append(", World!");
Kết luận
Bằng cách sử dụng các phương thức tiện ích của lớp String, nhà phát triển có thể dễ dàng thao tác với chuỗi ký tự một cách hiệu quả. Đồng thời, hiểu rõ về StringBuilder và StringBuffer sẽ giúp tối ưu hóa hiệu suất khi cần chỉnh sửa chuỗi nhiều lần. Các kiến thức này là nền tảng cơ bản nhưng lại vô cùng quan trọng trong lập trình Java.
Comments