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à đố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 đều 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 tôi đã 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
Chuỗi: Xin chào! Chiều dài thế giới: 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
Chuỗi đầu tiên: Chuỗi thứ hai của Java: Chuỗi tham gia lập trình: Lập trình Java
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
Chuỗi đầu tiên và chuỗi thứ hai bằng nhau: true Chuỗi đầu tiên và chuỗi thứ ba bằng nhau: 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 ==
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 có trong Java. Dưới đây là một số phương pháp đó:
Phương pháp | Sự miêu tả |
---|---|
chuỗi con () | trả về chuỗi con của chuỗi |
thay thế() | thay thế ký tự cũ được chỉ định bằng ký tự mới đã chỉ định |
charAt () | trả về ký tự hiện diện ở vị trí đã chỉ định |
getBytes () | chuyển đổi chuỗi thành một mảng byte |
Chỉ số() | trả về vị trí của ký tự được chỉ định trong chuỗi |
so với() | so sánh hai chuỗi theo thứ tự từ điển |
trim () | xóa mọi khoảng trắng ở đầu và cuối |
định dạng() | trả về một chuỗi được định dạng |
tách () | ngắt chuỗi thành một mảng chuỗi |
toLowerCase () | chuyển đổi chuỗi thành chữ thường |
Đến trường hợp trên() | chuyển đổi chuỗi thành chữ hoa |
giá trị của() | trả về biểu diễn chuỗi của đối số được chỉ định |
toCharArray () | chuyển đổi chuỗi thành một char mảng |
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 lệnh cho 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, chuỗi là bất biến . Điều này có nghĩa là, 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 đó.
It looks like we are able to change the value of the previous string. However, this is not true
.
Let's see what has happened here,
- JVM takes the first string "Hello! "
- creates a new string by adding "World" to the first string
- assign the new string "Hello! World" to the example variable
- the first string "Hello! " remains unchanged
Creating strings using the new keyword
So far we have created strings like primitive types in Java.
Since strings in Java are objects, we can create strings using the new
keyword as well. For example,
// create a string using the new keyword String name = new String("Java String");
In the above example, we have created a string name using the new
keyword.
Here, when we create a string object, the String()
constructor is invoked. To learn more about constructor, visit Java Constructor.
Note: The String
class provides various other constructors to create strings. To learn more, visit Java String (official Java documentation).
Example: Create Java Strings using the new keyword
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 ) )
Create String using literals vs new keyword
Now that we know how strings are created using string literals and the new
keyword, let's see what is the major difference between them.
In Java, the JVM maintains a string pool to store all of its strings inside the memory. The string pool helps in reusing the strings.
While creating strings using string literals, the value of the string is directly provided. Hence, the compiler first checks the string pool to see if the string already exists.
- Nếu chuỗi đã tồn tại , chuỗi mới không được tạo. Thay vào đó, tham chiếu mới trỏ đến chuỗi hiện có.
- Nếu chuỗi không tồn tại , chuỗi mới sẽ được tạo.
Tuy nhiên, trong khi tạo chuỗi bằng từ khóa mới , 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.