Khám phá công nghệ

Khám phá các công cụ và kỹ thuật hữu ich cho Lập trình viên

Java Programming: String trong Java

Thắng Nguyễn

Tue, 05 Mar 2024

Java Programming: String trong Java

Giới thiệu

Trong Java, một chuỗi là một dãy các ký tự. Ví dụ, chuỗi "hello" chứa các ký tự 'h', 'e', 'l', 'l', và 'o'.

Chúng ta sử dụng dấu ngoặc kép để biểu diễn một chuỗi trong Java. Ví dụ:

java
// tạo một chuỗi String type = "Lập trình Java";

Ở đây, chúng ta đã tạo một biến chuỗi có tên là type. Biến này được khởi tạo với giá trị "Lập trình Java".

Ví dụ: Tạo một chuỗi trong Java

java
class Main {
public static void main(String[] args) {
// tạo chuỗi
String first = "Java";
String second = "Python";
String third = "JavaScript";

// in ra chuỗi
System.out.println(first); // in ra Java
System.out.println(second); // in ra Python
System.out.println(third); // in ra JavaScript
}
}

Trong ví dụ trên, chúng ta đã tạo ba chuỗi có tên là first, second, và third. Ở đây, chúng ta đang tạo chuỗi trực tiếp như các kiểu dữ liệu nguyên thủy.

Tuy nhiên, còn một cách khác để tạo chuỗi trong Java (sử dụng từ khóa new). Chúng ta sẽ tìm hiểu về điều đó sau trong bài học này.

Lưu ý: Chuỗi trong Java không phải là kiểu dữ liệu nguyên thủy (như int, char, v.v.). Thay vào đó, tất cả chuỗi là đối tượng của một lớp được xác định trước có tên là String. Tất cả các biến chuỗi đều là các trường hợp của lớp String.

Các thao tác với chuỗi trong Java

Java cung cấp các phương thức khác nhau để thực hiện các thao tác khác nhau trên chuỗi. Hãy xem xét một số thao tác chuỗi thông dụng.

1. Lấy độ dài của một chuỗi

Để lấy độ dài của một chuỗi, chúng ta sử dụng phương thức length() của lớp String. Ví dụ:

class Main {
public static void main(String[] args) {

// tạo một chuỗi
String greet = "Xin chào, thế giới";
System.out.println("Chuỗi: " + greet);

// lấy độ dài của greet
int length = greet.length();
System.out.println("Độ dài: " + length);
}
}

Output:

less
Chui: Xin chào, thế gii Độ dài: 18

Phương thức length() tính tổng số ký tự trong chuỗi và trả về.

2. Nối hai chuỗi trong Java

Chúng ta có thể nối hai chuỗi trong Java bằng cách sử dụng phương thức concat() hoặc toán tử +. Ví dụ:

java
class Main {
public static void main(String[] args) {

// tạo chuỗi thứ nhất
String first = "Java ";
System.out.println("Chuỗi thứ nhất: " + first);

// tạo chuỗi thứ hai
String second = "Lập trình";
System.out.println("Chuỗi thứ hai: " + second);

// nối hai chuỗi bằng concat()
String joinedString = first.concat(second);
System.out.println("Chuỗi nối: " + joinedString);
}
}

Output:

less
Chui thnht: Java Chui thhai: Lp trình Chui ni: Java Lp trình

3. So sánh hai chuỗi

Trong Java, chúng ta có thể so sánh hai chuỗi bằng phương thức equals(). Ví dụ:

java
class Main {
public static void main(String[] args) {

// tạo 3 chuỗi
String first = "lập trình Java";
String second = "lập trình Java";
String third = "lập trình Python";

// so sánh chuỗi thứ nhất và thứ hai
boolean result1 = first.equals(second);
System.out.println("Chuỗi thứ nhất và thứ hai bằng nhau: " + result1);

// so sánh chuỗi thứ nhất và thứ ba
boolean result2 = first.equals(third);
System.out.println("Chuỗi thứ nhất và thứ ba bằng nhau: " + result2);
}
}

Output:

less
Chui thnht và thhai bng nhau: true Chui thnht và thba bng nhau: false

Trong ví dụ trên, chúng ta đã tạo 3 chuỗi có tên là first, second, và third. Ở đây, chúng ta sử dụng phương thức equals() để kiểm tra xem một chuỗi có bằng một chuỗi khác hay không.

Lưu ý: So sánh chuỗi cũng có thể thực hiện bằng toán tử == trong Java, nhưng cách tiếp cận này khác so với phương thức equals().

Dấu Escape trong chuỗi Java

Dấu escape () được sử dụng để thoát khỏi một số ký tự đặc biệt trong một chuỗi. Ví dụ:

java
// bao gồm dấu nháy kép String example = "Đây là lớp \"String\"";

Sử dụng dấu escape giúp trình biên dịch đọc đúng các dấu nháy kép được đặt trong chuỗi.

Chuỗi trong Java là bất biến (Immutable)

Trong Java, chuỗi là không thay đổi, có nghĩa là khi một chuỗi được tạo, nó không thể thay đổi. Hãy xem xét ví dụ sau:

java
// tạo một chuỗi String example = "Xin chào! ";

Mặc dù có vẻ như chúng ta đang thay đổi giá trị của chuỗi với phương thức concat(), thực tế là một chuỗi mới được tạo và biến được gán cho chuỗi mới. Chuỗi gốc vẫn giữ nguyên.

Tạo chuỗi bằng từ khóa new

Chúng ta cũng có thể tạo chuỗi trong Java bằng từ khóa new. Ví dụ:

java
// tạo một chuỗi bằng new String name = new String("Chuỗi Java");

Trong ví dụ trên, chúng ta đã tạo một chuỗi name bằng từ khóa new.

Lưu ý: Lớp String cung cấp nhiều hàm tạo khác nhau để tạo chuỗi. Để tìm hiểu thêm, hãy xem tài liệu chính thức về chuỗi Java.

Ví dụ: Tạo chuỗi trong Java bằng từ khóa new

class Main {
public static void main(String[] args) {

// tạo một chuỗi bằng new
String name = new String("Chuỗi Java");

System.out.println(name); // in ra Chuỗi Java
}
}

Tạo chuỗi bằng literals vs và từ khóa new

Bây giờ chúng ta đã biết cách tạo chuỗi bằng literals và từ khóa new, hãy xem điểm khác biệt chính giữa chúng.

Trong Java, JVM lưu tất cả chuỗi trong bộ nhớ, giúp tái sử dụng chuỗi.

  1. Khi tạo chuỗi bằng literals:

    java
    String example = "Java";

    Trình biên dịch trước tiên kiểm để xem chuỗi đã tồn tại hay chưa. Nếu có, tham chiếu trỏ đến chuỗi hiện tại; nếu không, một chuỗi mới được tạo.

  2. Khi tạo chuỗi bằng từ khóa new:

    java
    String example = new String("Java");

    Dù chuỗi đã tồn tại hay không, một chuỗi mới luôn được tạo.

Các Phương Thức của Chuỗi Java

Ngoài các thao tác đã nêu, lớp String trong Java cung cấp nhiều phương thức để thao tác với chuỗi. Dưới đây là một số phương thức thường được sử dụng:

  • contains(): kiểm tra xem chuỗi có chứa một chuỗi con không
  • substring(): trả về chuỗi con của chuỗi
  • join(): nối các chuỗi được cho bằng một dấu phân cách
  • replace(): thay thế các ký tự cũ bằng ký tự mới trong chuỗi
  • charAt(): trả về ký tự ở một vị trí cụ thể
  • getBytes(): chuyển đổi chuỗi thành một mảng byte
  • indexOf(): trả về vị trí của ký tự cụ thể trong chuỗi
  • compareTo(): so sánh hai chuỗi theo thứ tự từ điển
  • ... và nhiều phương thức khác nữa.

Những phương thức này cung cấp một loạt các chức năng để xử lý và thao tác với chuỗi trong Java. Để biết thêm chi tiết, xem tài liệu chính thức của Java về Chuỗi.

Tóm lại, hiểu về chuỗi trong Java, các thao tác và các phương thức đi kèm là quan trọng để thực hiện các công việc xử lý chuỗi một cách hiệu quả trong lập trình Java.

0 Comments

Để lại một bình luận