Xây dựng chuỗi
String newString = new String(stringLiteral);
Vd:
String message = new String("Welcome to Java!");
Vì chuỗi được sử dụng thường xuyên, Java cung cấp lệnh
ngắn để tạo chuỗi:
String message = "Welcome to Java!";
Cũng có thể tạo chuỗi từ mảng các ký tự:
char[] charArr = {'G','o','o','d',' ','d','a','y'}
String message = new String(charArr);
Các chuỗi là không thể thay đổi
CHÚ Ý: Một đối tượng String là không thể thay đổi nội
dung. Xét ví dụ sau:
String s = "Java";
s = "HTML";
Vd trên: đối tượng String lưu chuỗi "Java" vẫn tồn tại nhưng
không được tham chiếu bởi biến nào cả.
Nếu sử dụng lệnh tắt tạo 2 đối tượng String với cùng nội
dung, JVM lưu 2 đối tượng đó vào trong cùng một đối
tượng để cải thiện hiệu năng và tiết kiệm bộ nhớ.
Do đó, người ta thường sử dụng lệnh tắt để tạo các chuỗi.
Các chuỗi là không thể thay đổi (tiếp)
CHÚ Ý: Một chuỗi được tạo bởi lệnh tắt được
coi là một canonical string (chuỗi hợp quy tắc
tiêu chuẩn).
Bạn có thể sử dụng phương thức intern của
lớp String để trả về một canonical string, tương
tự như string được tạo bởi lệnh tắt.
Ví dụ
String s = "Welcome to Java!";
String s1 = new String("Welcome to Java!");
String s2 = s1.intern();
System.out.println("s1 == s is " + (s1 == s));
System.out.println("s2 == s is " + (s2 == s));
System.out.println("s1 == s2 is " +(s1 == s2));
Hiển thị:
s1 == s is false
s2 == s is true
s1 == s2 is false
Lấy độ dài chuỗi
Sử dụng phương thức length() :
message = "Welcome";
message.length() (returns 7)
Lấy các ký tự trong chuỗi
Không sử dụng message[0]
Mà dùng message.charAt(index)
Chỉ số (index) bắt đầu từ 0
W
e
l
c
o
m
e
t
o
J
a
v
a
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
message
Indices
message.charAt(0)
message.charAt(14)
message.length() is 15
Ghép chuỗi
String s3 = s1.concat(s2);
String s3 = s1 + s2;
Trích chuỗi con
String là một lớp không thể thay đổi; giá trị của nó
không bị thay đổi một cách riêng lẻ.
String s1 = "Welcome to Java";
String s2 = s1.substring(0, 11) + "HTML";
W
e
l
c
o
m
e
t
o
J
a
v
a
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
message
Indices
message.substring(0, 11)
message.substring(11)
So sánh chuỗi
equals
String s1 = "Welcome to Java!";
String s2 = new String("Welcome to Java!";
if (s1.equals(s2)){
// s1 and s2 have the same contents
}
if (s1 == s2) {
// s1 and s2 have the same reference
}
Chú ý: s1.equals(s2) là True khi và chỉ khi
s1.intern() == s2.intern().
So sánh chuỗi (tiếp)
compareTo(Object object)
String s1 = "Welcome";
String s2 = "welcome";
if (s1.compareTo(s2) > 0) {
// s1 is greater than s2
}
else if (s1.compareTo(s2) == 0) {
// s1 and s2 have the same reference
}
else
// s1 is less than s2
Không có nhận xét nào:
Đăng nhận xét