Trong hướng dẫn này, chúng ta sẽ tìm hiểu về Chuỗi Java, cách tạo chúng và các phương thức khác nhau của Chuỗi với sự trợ giúp của các ví dụ.
Trong Java, một chuỗi là một chuỗi các ký tự. Ví dụ: “xin chào” là một chuỗi chứa một chuỗi các ký tự ‘h’ , ‘e’ , ‘l’ , ‘l’ và ‘o’ .
Chúng tôi sử dụng dấu ngoặc kép để biểu diễn một chuỗi trong Java. Ví dụ,
// create a string
String type = "Java programming";
Ở đây, chúng ta đã tạo một biến chuỗi có tên là type . Biến được khởi tạo bằng chuỗi Java Programming
.
Lưu ý : Strings trong Java không loại nguyên thủy (như int
, char
, vv). Thay vào đó, tất cả các chuỗi là các đối tượng của một lớp được xác định trước có tên String
.
Và, tất cả các biến chuỗi là thể hiện của String
lớp.
Ví dụ: Tạo một chuỗi trong Java
class Main {
public static void main(String[] args) {
// create strings
String first = "Java";
String second = "Python";
String third = "JavaScript";
// print strings
System.out.println(first); // print Java
System.out.println(second); // print Python
System.out.println(third); // print JavaScript
}
}
Trong ví dụ trên, chúng ta đã tạo ba chuỗi có tên đầu tiên , thứ hai và thứ ba . Ở đây, chúng ta đang trực tiếp tạo các chuỗi giống như các kiểu nguyên thủy.
Tuy nhiên, có một cách khác để tạo chuỗi Java (sử dụng new
từ khóa). Chúng ta sẽ tìm hiểu về điều đó sau trong hướng dẫn này.
Hoạt động chuỗi Java
Java String cung cấp nhiều phương thức khác nhau để thực hiện các hoạt động khác nhau trên chuỗi. Chúng ta sẽ xem xét một số hoạt động chuỗi thường được sử dụng.
1. Lấy độ dài của một chuỗi
Để tìm độ dài của một chuỗi, chúng ta sử dụng length()
phương thức của Chuỗi. Ví dụ,
class Main {
public static void main(String[] args) {
// create a string
String greet = "Hello! World";
System.out.println("String: " + greet);
// get the length of greet
int length = greet.length();
System.out.println("Length: " + length);
}
}
Đầu ra
String: Hello! World Length: 12
Trong ví dụ trên, length()
phương thức tính tổng số ký tự trong chuỗi và trả về nó. Để tìm hiểu thêm, hãy truy cập Java String length () .
2. Nối hai chuỗi
Chúng ta có thể nối hai chuỗi trong Java bằng concat()
phương thức này. Ví dụ,
class Main {
public static void main(String[] args) {
// create first string
String first = "Java ";
System.out.println("First String: " + first);
// create second
String second = "Programming";
System.out.println("Second String: " + second);
// join two strings
String joinedString = first.concat(second);
System.out.println("Joined String: " + joinedString);
}
}
Đầu ra
First String: Java Second String: Programming Joined String: Java Programming
Trong ví dụ trên, chúng ta đã tạo hai chuỗi có tên đầu tiên và thứ hai . Lưu ý tuyên bố,
String joinedString = first.concat(second);
Ở đây, chúng ta concat()
kết hợp phương thức đầu tiên và thứ hai và gán nó cho biến JoinString .
Chúng ta cũng có thể nối hai chuỗi bằng +
toán tử trong Java. Để tìm hiểu thêm, hãy truy cập Java String concat () .
3. So sánh hai chuỗi
Trong Java, chúng ta có thể so sánh giữa hai chuỗi bằng equals()
phương pháp này. Ví dụ,
class Main {
public static void main(String[] args) {
// create 3 strings
String first = "java programming";
String second = "java programming";
String third = "python programming";
// compare first and second strings
boolean result1 = first.equals(second);
System.out.println("Strings first and second are equal: " + result1);
// compare first and third strings
boolean result2 = first.equals(third);
System.out.println("Strings first and third are equal: " + result2);
}
}
Đầu ra
Strings first and second are equal: true Strings first and third are equal: false
Trong ví dụ trên, chúng ta đã tạo 3 chuỗi có tên là thứ nhất , thứ hai và thứ ba . Ở đây, chúng tôi đang sử dụng equal()
phương pháp để kiểm tra xem một chuỗi có bằng với chuỗi khác hay không.
Các equals()
kiểm tra phương pháp nội dung của chuỗi khi so sánh chúng. Để tìm hiểu thêm, hãy truy cập Chuỗi Java bằng () .
Lưu ý : Chúng ta cũng có thể so sánh hai chuỗi bằng cách sử dụng ==
toán tử trong Java. Tuy nhiên, cách tiếp cận này khác với equals()
phương pháp. Để tìm hiểu thêm, hãy truy cập Java String == so với equals () .
Các phương thức của chuỗi Java
Bên cạnh những phương thức được đề cập ở trên, có nhiều phương thức chuỗi khác nhau hiện diện trong Java. Dưới đây là một số phương pháp:
Methods | Decfscription |
---|---|
substring() | returns the substring of the string |
replace() | replaces the specified old character with the specified new character |
charAt() | returns the character present in the specified location |
getBytes() | converts the string to an array of bytes |
indexOf() | returns the position of the specified character in the string |
compareTo() | compares two strings in the dictionary order |
trim() | removes any leading and trailing whitespaces |
format() | returns a formatted string |
split() | breaks the string into an array of strings |
toLowerCase() | converts the string to lowercase |
toUpperCase() | converts the string to uppercase |
valueOf() | returns the string representation of the specified argument |
toCharArray() | converts the string to a char array |
Ký tự thoát trong chuỗi Java
Ký tự thoát được sử dụng để thoát một số ký tự hiện diện bên trong một chuỗi.
Giả sử chúng ta cần bao gồm dấu ngoặc kép bên trong một chuỗi.
// include double quote
String example = "This is the "String" class";
Vì các chuỗi được biểu diễn bằng dấu ngoặc kép , trình biên dịch sẽ coi “Đây là” là chuỗi. Do đó, đoạn mã trên sẽ gây ra lỗi.
Để giải quyết vấn đề này, chúng tôi sử dụng ký tự thoát \
trong Java. Ví dụ,
// use the escape character
String example = "This is the \"String\" class.";
Bây giờ các ký tự thoát yêu cầu trình biên dịch thoát khỏi dấu ngoặc kép và đọc toàn bộ văn bản.
Chuỗi Java là bất biến
Trong Java, các chuỗi là bất biến . Điều này có nghĩa là, một khi chúng ta tạo một chuỗi, chúng ta không thể thay đổi chuỗi đó.
Để hiểu sâu hơn, hãy xem xét một ví dụ:
// create a string
String example = "Hello! ";
Ở đây, chúng tôi đã tạo một biến chuỗi có tên là ví dụ . Biến giữ chuỗi “Hello!” .
Bây giờ, giả sử chúng ta muốn thay đổi chuỗi.
// add another string "World"
// to the previous tring example
example = example.concat(" World");
Ở đây, chúng tôi đang sử dụng concat()
phương thức để thêm một chuỗi World vào chuỗi trước đó.
Có vẻ như chúng ta có thể thay đổi giá trị của chuỗi trước đó. Tuy nhiên, điều này không phải true
.
Hãy xem điều gì đã xảy ra ở đây,
- JVM lấy chuỗi đầu tiên “Xin chào!”
- tạo một chuỗi mới bằng cách thêm “World” vào chuỗi đầu tiên
- gán chuỗi mới “Hello! World” cho biến ví dụ
- chuỗi đầu tiên “Xin chào!” vẫn không thay đổi
Tạo chuỗi bằng từ khóa mới
Cho đến nay chúng tôi đã tạo ra các chuỗi giống như các kiểu nguyên thủy trong Java.
Vì chuỗi trong Java là các đối tượng, chúng ta cũng có thể tạo chuỗi bằng cách sử dụng new
từ khóa. Ví dụ,
// create a string using the new keyword
String name = new String("Java String");
Trong ví dụ trên, chúng ta đã tạo một tên chuỗi bằng cách sử dụng new
từ khóa.
Ở đây, khi chúng ta tạo một đối tượng chuỗi, hàm String()
tạo sẽ được gọi. Để tìm hiểu thêm về hàm tạo, hãy truy cập Java Constructor .
Lưu ý : String
Lớp cung cấp nhiều hàm tạo khác để tạo chuỗi. Để tìm hiểu thêm, hãy truy cập Chuỗi Java (tài liệu Java chính thức) .
Ví dụ: Tạo chuỗi Java bằng từ khóa mới
class Main {
public static void main(String[] args) {
// create a string using new
String name = new String("Java String");
System.out.println(name); // print Java String
}
}
Tạo chuỗi bằng cách sử dụng nghĩa đen so với từ khóa mới
Bây giờ chúng ta đã biết cách tạo chuỗi bằng cách sử dụng chuỗi ký tự và new
từ khóa, hãy xem sự khác biệt chính giữa chúng là gì.
Trong Java, JVM duy trì một nhóm chuỗi để lưu trữ tất cả các chuỗi của nó bên trong bộ nhớ. Nhóm chuỗi giúp tái sử dụng các chuỗi.
1. Trong khi tạo chuỗi bằng cách sử dụng chuỗi ký tự,
String example = "Java";
Ở đây, chúng tôi đang trực tiếp cung cấp giá trị của chuỗi ( Java
). Do đó, trình biên dịch trước tiên sẽ kiểm tra nhóm chuỗi để xem chuỗi đã tồn tại hay chưa.
- If the string already exists, the new string is not created. Instead, the new reference, example points to the already existed string (
Java
). - If the string doesn’t exist, the new string (
Java
is created.
2. Trong khi tạo chuỗi bằng từ khóa mới,
String example = new String("Java");
Ở đây, giá trị của chuỗi không được cung cấp trực tiếp. Do đó, chuỗi mới được tạo mọi lúc.