Java Chuỗi – String

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ư intchar, 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 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 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 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

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:

MethodsDecfscription
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,

  1. JVM lấy chuỗi đầu tiên “Xin chào!”
  2. tạo một chuỗi mới bằng cách thêm “World” vào chuỗi đầu tiên
  3. gán chuỗi mới “Hello! World” cho biến ví dụ
  4. 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 newtừ 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 newtừ 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 ý : StringLớ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à newtừ 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.









Gõ tìm kiếm nhanh...