Chuỗi Java (Với các ví dụ)

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 Stringlớ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 newtừ 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 charmả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,

  1. JVM takes the first string "Hello! "
  2. creates a new string by adding "World" to the first string
  3. assign the new string "Hello! World" to the example variable
  4. 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.

thú vị bài viết...