- Siêu lớp và danh mục iOS/Objective-C
- object-c - -1001 lỗi khi NSURLSession vượt qua httpproxy và /etc/hosts
- java - Nhận địa chỉ url bằng lớp mạng
- ios - Âm thanh không phát trong thông báo đẩy
Tôi đang cố gắng sử dụng trong mã của mình StringBuilder
,而不是 String
Làm cho thời gian mã hiệu quả trong tất cả các quá trình phân tích cú pháp và nối.
Nhưng khi tôi nhìn vào mã nguồn của nó,chuỗi con()
phương phápTóm tắtStringBuilder
,Vì vậy StringBuilder
Những gì được trả lại là String
thay vì StringBuilder
.
Ý tưởng đằng sau điều này là gì?
Cảm ơn.
câu trả lời hay nhất
chuỗi con
Phương thức trả về bất biến String
Lý do là một khi bạn đã ở trong StringBuilder
Để lấy được một phần của chuỗi, nó phải tạo một bản sao. nó không thể cung cấp cho bạn StringBuilder
Một "chế độ xem trực tiếp" có thể thay đổi ở giữa nội dung, nếu không, bạn sẽ có xung đột về những thay đổi nào được áp dụng cho chuỗi nào.
Vì dù sao thì một bản sao cũng được tạo nên nó có thể là bất biến: nếu muốn, bạn có thể thực hiện việc này bằng cách xây dựng một StringBuilder
để dễ dàng làm cho nó có thể thay đổi được, hiểu đầy đủ rằng nó có nguồn gốc từ bản gốc có thể thay đổi được.
Về Java - StringBuilder sử dụng String thay vì StringBuilder, chúng tôi tìm thấy một câu hỏi tương tự trên Stack Overflow: https://stackoverflow.com/questions/19934471/
lớp công khai TestMyStringBuilderII { public static void main(String[] args) { StringBuilder sb = n
Tất cả chúng ta đều biết rằng String là bất biến và StringBuilder có thể thay đổi. Chính xác. Vậy tại sao phương thức của nó lại trả về một đối tượng StringBuilder. Không phải tất cả chúng đều là phương pháp trống sao? Tại sao nó lại công khai như vậy?
Khi tôi đọc phương thức bằng() được sử dụng để so sánh các chuỗi về đẳng thức trong java nhưng khi tôi chạy mã này, tôi nhận được kết quả sai. Tại sao? lớp công khai TestStringBuilder { pu
Tôi đã nhận được một danh sách các mô hình. Số lượng mô hình có thể lớn. Mô hình này có nhiều thuộc tính, bất kỳ thuộc tính nào trong số đó đều có thể rỗng. Tôi cần xây dựng chuỗi cho từng mô hình dựa trên thuộc tính của mô hình. Nếu thuộc tính == null thì tôi sẽ có trong chuỗi kết quả
Tôi đã viết một số mã có nhiều chuỗi tạo. Để tránh tạo đi tạo lại các chuỗi đắt tiền, tôi đã sử dụng lớp java StringBuilder. Mã của tôi trông hơi giống thế này: public String createSt
Câu hỏi này đã có câu trả lời ở đây: đã đóng cửa 10 năm trước. Có thể trùng lặp: Nối StringBuilder và nối chuỗi trong toString() trong Ja
Lớp StringBuilder định nghĩa bốn hàm tạo, không có hàm nào chấp nhận StringBuilder, nhưng các hàm biên dịch sau: StringBuilder sb = new StringBuilder(new String
Tôi đang cố gắng sử dụng StringBuilder trong mã của mình thay vì String để làm cho mã có hiệu quả về mặt thời gian trong tất cả quá trình phân tích cú pháp và nối. Nhưng khi tôi nhìn vào mã nguồn của nó, phương thức chuỗi con() Tóm tắtStrin
Tôi đang thắc mắc về StringBuilder và tôi có một câu hỏi mong cộng đồng có thể giải thích. Hãy quên đi khả năng đọc mã, cái nào nhanh hơn và tại sao? StringBuilder.Append: StringBuilder sb = n
Câu hỏi này đã có câu trả lời ở đây: Dấu chấm than đơn trong Kotlin (6 câu trả lời) Ví dụ về khi nào chúng ta nên sử dụng run, let, app
Tôi đã thêm một số strBuild cùng với một số ký tự và đặt strBuild đó vào stringBuildArr. Sau đó gọi java.lang.StringBuilder.dele trên strBuild
Bộ nhớ nào hiệu quả hơn trong C#: tùy chọn số 1 hoặc tùy chọn số 2? public void TestStringBuilder() { //có khả năng là một bộ sưu tập có
Tôi gặp phải ngoại lệ OutOfMemory khi sử dụng StringBuilder.ToString(). Bởi vì chuỗi của tôi đòi hỏi rất nhiều không gian. Đó là lý do tại sao tôi cần một cách (có lẽ bằng cách phát trực tuyến) để nó hoạt động. đây là của tôi
Câu hỏi này đã có câu trả lời: Sự khác biệt giữa các kiểu tham chiếu phương thức cá thể trong Java 8 là gì? (3 câu trả lời) Đã đóng 7 năm trước
Câu hỏi này đã có câu trả lời ở đây: Sự khác biệt giữa các kiểu tham chiếu phương thức cá thể trong Java 8 là gì? (3 câu trả lời) Đóng
Một câu hỏi gần đây đã được đặt ra về việc sử dụng String.Format(). Một phần câu trả lời của tôi bao gồm đề xuất sử dụng StringBuilder.AppendLine(string.Format(...))
Sau khi thấy câu hỏi trên SO về nối chuỗi, tôi đã thực hiện một số thử nghiệm và biết được rằng nối chuỗi trong foreach chậm hơn so với sử dụng vòng lặp for và sử dụng chỉ mục trong một mảng. Vòng lặp for có nên chậm hơn do kiểm tra liên kết trên mảng không?
Vấn đề của tôi là nếu tôi sử dụng nhiều luồng trên cùng một chuỗi thì đôi khi chuỗi đó không được thay thế. (Tôi đã viết phần này trên notepad nên cú pháp có thể sai) Sử dụng System.Thread... và tất nhiên là các lớp khác.... {
Nếu tôi tạo một lớp bất biến. Tất cả các trường phải là cuối cùng. Nếu tôi sử dụng stringbuilder như thế này thì StringBuilder s = new StringBuilder("Hello");
Có thể định cấu hình lớp Java StringBuilder để nối thêm một dòng mới giữa mỗi lệnh gọi nối thêm không? Câu trả lời hay nhất Tôi không nghĩ StringBuilder có sẵn chức năng đó. Vì bạn không thể mở rộng nó, bạn có thể thử sử dụng mẫu trang trí...
Tôi là một lập trình viên xuất sắc, rất giỏi!