Top 10 câu hỏi được hỏi nhiều nhất về chuỗi trong Java được đề cập tại đây
-
Làm thế nào để so sánh các chuỗi? Sử dụng cái gì: "
==
" hayequals()
?Nói tóm lại, "
==
" so sánh các tham chiếu với các chuỗi, nhưngequals()
so sánh các giá trị có trong các chuỗi đó. Nếu bạn không muốn kiểm tra xem hai chuỗi có phải là cùng một đối tượng hay không, thì bạn nên sử dụngequals()
.Cũng sẽ rất tốt nếu biết khái niệm về chuỗi chuỗi .
-
Tại sao
char[]
các chuỗi (String
) được ưa thích để bảo vệ thông tin nhạy cảm?Chuỗi là bất biến . Điều này có nghĩa là khi một chuỗi được tạo, nó sẽ không bị sửa đổi cho đến khi trình thu gom rác được chạy. Trong trường hợp mảng, rõ ràng là chúng ta có thể thay đổi các phần tử của nó. Bằng cách này, thông tin nhạy cảm (chẳng hạn như mật khẩu) sẽ không được lưu trữ ở dạng văn bản rõ ràng ở bất kỳ đâu trong chương trình.
-
Chúng ta có thể truyền chuỗi dưới dạng tham số khi sử dụng câu lệnh switch không ?
Có, bắt đầu từ phiên bản 7 của JDK. Trước đây ở phiên bản 6, điều này là không thể.
// java 7 only! switch (str.toLowerCase()) { case "a": value = 1; break; case "b": value = 2; break; }
-
Làm cách nào để chuyển đổi một chuỗi thành một giá trị nguyên?
int n = Integer.parseInt("10");
Điều tương tự cũng xảy ra với các kiểu nguyên thủy khác trong Java.
-
Làm cách nào để chia một chuỗi thành các dòng được phân cách bằng dấu cách?
Cách dễ nhất là sử dụng biểu thức thông thường. "
\s
" đóng vai trò thay thế cho các ký tự khoảng trắng như "\t
", "\r
", "\n
".String[] strArray = aString.split("\\s+");
-
< Phương pháp này thực sự làm gì
substring()
?Trong JDK 6, phương thức này
substring()
hiển thị một phần ký tự từ một chuỗi hiện có nhưng không tạo một phiên bản riêng của chuỗi. Để tạo một chuỗi mới, được biểu diễn dưới dạng một mảng ký tự, bạn có thể thêm một số chuỗi trống, ví dụ như sau:str.substring(m, n) + ""
Kết quả là một mảng các ký tự, đây là chuỗi mới của chúng ta. Cách tiếp cận này đôi khi có thể giảm thời gian thực thi mã vì trình thu gom rác có thể hủy các chuỗi lớn không sử dụng và chỉ lưu trữ các chuỗi con.
Trong Oracle JDK 7, phương thức này
substring()
tạo một mảng ký tự mới mà không sử dụng mảng ký tự hiện có. Bạn cũng có thể xem sơ đồ thể hiện sự khác biệt giữa các phương thức substring() trong JDK 6 và JDK 7 . -
Chuỗi so với StringBuilder so với StringBuffer
String
vsStringBuilder
:StringBuilder
có thể thay đổi, điều này có nghĩa là chúng ta có thể thay đổi nội dung của nó sau khi đối tượng được tạo.StringBuilder
vsStringBuffer
:StringBuffer
được đồng bộ hóa, nghĩa là nó hoạt động chính xác khi được sử dụng từ nhiều luồng cùng lúc, nhưng chậm hơnStringBuilder
. -
Làm thế nào để lặp lại một dòng nhiều lần?
Trong Python, chúng ta có thể nhân một chuỗi với một số
n
và sau đó nó sẽ lặp lại n lần. Trong Java, chúng ta có thể sử dụng một phương thứcrepeat()
từStringUtils
lớp thư viện Apache Commons Lang.String str = "abcd"; String repeated = StringUtils.repeat(str,3); //abcdabcdabcd
-
Làm cách nào để chuyển đổi một chuỗi thành một ngày?
String str = "Sep 17, 2013"; Date date = new SimpleDateFormat("MMMM d, yy", Locale.ENGLISH).parse(str); System.out.println(date); //Tue Sep 17 00:00:00 EDT 2013
-
Làm cách nào để đếm số lần xuất hiện của một ký tự nhất định trong chuỗi?
Sử dụng một lớp
StringUtils
từ thư viện Apache Commons Lang.int n = StringUtils.countMatches("11112222", "1"); System.out.println(n);
GO TO FULL VERSION