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 char | Result | Description |
|---|---|---|
\' | ' | 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
| Code | Result |
|---|---|
\n | Newline |
\r | Carriage return |
\t | Tab |
\b | Backspace |
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