String trong Java

String & Regex

Lớp String trong java cung cấp rất nhiều các phương thức để thực hiện các thao tác với chuỗi như: compare(), concat(), equals(), split(), length(), replace(), compareTo(), intern(), substring(), …

Lớp java.lang.String được implements từ các interface Serializable, Comparable and CharSequence.

String trong java

CharSequence Interface

CharSequence Interface được sử dụng để biểu diễn chuỗi các ký tự. Nó được cài đặt bởi các lớp String, StringBuffer và StringBuilder. Điều này có nghĩa là chúng ta có thể tạo chuỗi ký tự trong java bằng cách sử dụng 3 lớp này.

String trong java

String là bất biến (immutable) tức là không thể thay đổi. Có nghĩa là khi nào bạn thay đổi giá trị của bất kỳ chuỗi nào thì một instance mới được tạo ra. Đối với chuỗi có thể thay đổi, bạn có thể sử dụng các lớp StringBuffer và StringBuilder.

String trong java là gì?

Thông thường, string là một chuỗi các ký tự. Nhưng, trong java string là một đối tượng biểu diễn một nối tiếp của các ký tự. Lớp java.lang.String được sử dụng để tạo đối tượng string.

Có 2 cách để tạo đối tượng String:

  1. Sử dụng string literal
  2. Sử dụng từ khóa new

1. Sử dụng String Literal

String literal được tạo ra bằng cách sử dụng 2 dấu nháy kép. Ví dụ:





String s = "Welcome";

Mỗi khi bạo tạo một biến string literal, đầu tiên JVM sẽ kiểm tra xem giá trị đó đã tồn tại trong Pool chưa. Nếu chuỗi này đã tồn tại trong Pool, thì giá trị của biến sẽ được tham chiếu đến instance đã được tạo ra trong Pool. Nếu chuỗi này không tồn tại trong Pool, một instance mới được tạo ra và đặt vào trong Pool. Ví dụ:

String s1 = "welcome";
String s2 = "welcome"; // se khong tao instance moi
tạo đối tượng string trong java

Theo ví dụ trên, chỉ có một đối tượng chuỗi “Webcome” được tạo ra. Biến s1 và s2 được tham chiếu đến đối tượng chuỗi “Webcome”.

Tại sao java sử dụng string literal?

Để làm cho Java sử dụng bộ nhớ hiệu quả hơn (Vì nếu chuỗi đã tồn tại trong Pool thì sẽ không có đối tượng mới được tạo ra).

2. Sử dụng từ khóa new

String s = new String("Welcome"); // Tạo 2 đối tượng và 1 biến tham chiếu

Trong trường hợp này, JVM sẽ tạo ra một đối tượng string mới như một đối tượng trong bộ nhớ HEAP và chữ “Welcome” sẽ được đặt trong Pool. Biến s sẽ tham chiếu tối đối tượng được tạo ra trong HEAP.

Ví dụ về Java String

public class Main {

public static void main(String[] args) {
// write your code here
String s1 = "java";//Tạo chuỗi bằng string literal
char ch[] = { 's', 't', 'r', 'i', 'n', 'g', 's' };
String s2 = new String(ch);//convert mảng char thành chuỗi
String s3 = new String("example");//Tạo chuỗi bằng từ khóa new
System.out.println(s1);
System.out.println(s2);
System.out.println(s3);
}
}

Kết quả:

java
strings
example

Các phương thức của lớp String trong java

Lớp java.lang.String cung cấp nhiều phương thức hữu ích để thực hiện các thao tác trên chuỗi của các giá trị char.

No.Phương thứcMô tả
1char charAt(int index)Trả về giá trị char cho chỉ số cụ thể.
2int length()Trả về độ dài chuỗi.
3static String format(String format, Object… args)Trả về chuỗi được format.
4static String format(Locale l, String format, Object… args)Trả về chuỗi được format theo vùng miền(quốc gia).
5String substring(int beginIndex)Trả về chuỗi con bắt đầu từ chỉ số index.
6String substring(int beginIndex, int endIndex)Trả về chuỗi con từ chỉ số bắt đầu đến chỉ số kết thúc.
7boolean contains(CharSequence s)Kiểm tra chuỗi chứa chuối không, kết quả trả về là giá trị boolean.
8static String join(CharSequence delimiter, CharSequence… elements)Trả về chuỗi được nối từ nhiều chuỗi.
9static String join(CharSequence delimiter, Iterable<? extends CharSequence> elements)Trả về chuỗi được nối từ nhiều chuỗi.
10boolean equals(Object another)kiểm tra sự tương đương của chuỗi với đối tượng.
11boolean isEmpty()Kiểm tra chuỗi rỗng.
12String concat(String str)Nối chuỗi cụ thể.
13String replace(char old, char new)Thay thế tất cả giá trị char cụ thể bằng một giá trị char mới.
14String replace(CharSequence old, CharSequence new)Thay thế tất cả các chuỗi bằng một chuỗi mới.
15static String equalsIgnoreCase(String another)So sanh chuỗi, không phân biệt chữ hoa hay chữ thường.
16String[] split(String regex)Trả về mảng các chuỗi được tách ra theo giá trị regex.
17String[] split(String regex, int limit)Trả về mảng các chuỗi được tách ra theo giá trị regex và có giới hạn.
18String intern()Trả về chuỗi interned.
19int indexOf(int ch)Trả về vị trí của ký tự ch cụ thể.
20int indexOf(int ch, int fromIndex)Trả về vị trí của ký tự ch tính từ từ vị trí fromIndex.
21int indexOf(String substring)Trả về vị trí của chuỗi con substring.
22int indexOf(String substring, int fromIndex)Trả về chuỗi con bắt đầu từ vị trí substring đến vị trí fromIndex.
23String toLowerCase()Trả về chuỗi chữ thường.
24String toLowerCase(Locale l)Trả về chuỗi chữ thường bằng việc sử dụng locale cụ thể.
25String toUpperCase()Trả về chuỗi chữ hoa.
26String toUpperCase(Locale l)Trả về chuỗi chữ hoa bằng việc sử dụng locale cụ thể.
27String trim()Xóa khoảng trẳng ở đầu và cuối của chuỗi.
28static String valueOf(int value)Chuyển đổi giá trị kiểu dữ liệu đã cho thành chuỗi.

Hãy tham gia nhóm Học lập trình để thảo luận thêm về các vấn đề cùng quan tâm.

Leave a Reply

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