String

Duy Văn | 06/03/2025


String là kiểu dữ liệu không nguyên thuỷ chứa text, nó được bọc bằng dấu nháy kép ""

char được bọc bằng nháy đơn ''
Bên python thì char hay String không phân biệt và được bọc bằng cả nháy đơn và nháy kép nhưng Java thì có phân biệt

Khai bái một String như sau:

String myName = "Who";

Length

Chiều dài của một String trong Java cũng có thể dùng một method để trả ra, tương tự như phía Python có len()

String myName = "Who";
System.out.println(myName.length()); // 3

Uppercase Lowercase

Tương tự với Python có upper() và lower() để chuyển một String thành chữ hoa hoặc chữ thường, Java cũng có

String myName = "Who";
System.out.println(myName.toUpperCase()); // WHO
System.out.println(myName.toLowerCase()); // who

Tìm index của char

Để tìm ra index của một ký tự trong Java, tương tự với Python có index()

String myName = "Who";
System.out.println(myName.indexOf('o')); // 1

Logic của nó chính là tìm ra lần xuất hiện đầu tiên, trả ra index của ký tự

Ngoài ra chúng ta cũng có thể tìm cả string bằng indexOf()

String myName = "What's that";
System.out.println(myName.indexOf("that")); // 7

Concatenate

Để ghép 2 string vào nhau, đầu tiên chúng ta có thể dùng operator +

String myName = "Who";
String myLastName = "Am I";
System.out.println(myName + " " + myLastName); // Who Am I

Hoặc sử dụng method concat():

String myName = "Who";
String myLastName = "Am I";
System.out.println(myName.concat(" ").concat(myLastName)); // Who Am I

Điểm khác biệt của hai cách này đấy, một cái là operator, một cái là method

Lưu ý khi concat thì bản chất String là dạng dữ liệu không thể thay đổi, nên mỗi lần concat nó sẽ tạo ra một String mới

Concat với số

Như đã nói ở trước, operator + khi áp dụng với số thì là phép toán, còn khi áp dụng với String thì là ghép nối string

Nếu concat string với số, thì số sẽ được chuyển thành String

String myName = "Who";
int myAge = 20;
System.out.println(myName + " " + myAge); // Who 20

Sử dụng ký tự đặc biệt

Khi sử dụng các ký tự đặc biệt trong String, ví dụ đơn cử là dấu nháy kép, thì chúng ta cần escape nó ra, cụ thể

Escape charResultDescription
\''Single quote
\""Double quote
\\\Backslash

Ngoài ra, các thao tác như xuống dòng, backspace có thể làm với

CodeResult
\nNewline
\rCarriage return
\tTab
\bBackspace
String myName = "Who";
System.out.println("Hello \"World\""); // Hello "World"
System.out.println("Hello\nWorld"); 

Một số trick

Đầu tiên, trick không thể không thể không kể đến cách đảo ngược string như ở phía Python, ở Python mọi người hay dùng slice [::-1] nhưng ở Java thì không có, nhưng có thể dùng một method StringBuilder để làm điều này

String myName = "Who";
StringBuilder sb = new StringBuilder(myName);
System.out.println(sb.reverse()); // ohW

Hoặc xử lý thủ công bằng loop, nhưng phương pháp này mình sẽ nói đến khi đã đi đến bài Loop