Cách thay thế nhiều ký tự trong một chuỗi trong Java
Sử dụng phương pháp 6 để thay thế nhiều ký tự trong một chuỗi, e. g. 7. Tham số đầu tiên mà phương thức nhận là một biểu thức chính quy có thể khớp với nhiều ký tự. Phương thức trả về một chuỗi mới với các kết quả khớp được thay thế bằng chuỗi thay thế được cung cấpChúng tôi đã chuyển 2 đối số sau cho Chuỗi. phương pháp thay thế
Dấu gạch chéo về phía trước 8 đánh dấu phần đầu và phần cuối của biểu thức chính quyDấu ngoặc vuông 9 được gọi là một lớp ký tự và khớp với bất kỳ ký tự nào giữa các dấu ngoặcTrong ví dụ đầu tiên, chúng tôi khớp dấu chấm, dấu gạch dưới và dấu gạch nối Bạn có thể điều chỉnh biểu thức chính quy theo trường hợp sử dụng của mình bằng cách cập nhật các ký tự giữa dấu ngoặc vuông và chuỗi thay thế Chúng tôi đã sử dụng cờ 0 (toàn cầu) vì chúng tôi muốn khớp tất cả các lần xuất hiện của các ký tự này trong chuỗi chứ không chỉ lần xuất hiện đầu tiênTrong ví dụ đầu tiên, chúng tôi đã thay thế mỗi lần xuất hiện của dấu chấm, dấu gạch dưới hoặc dấu gạch ngang bằng dấu cách Phương thức 1 không thay đổi chuỗi ban đầu, nó trả về một chuỗi mới. Các chuỗi là bất biến trong JavaScriptNếu bạn cần trợ giúp để đọc một biểu thức chính quy, hãy xem biểu đồ regex này từ MDN Ngoài ra, bạn có thể sử dụng Chuỗi. phương pháp thay thế tất cả Thay thế nhiều ký tự trong một chuỗi bằng cách sử dụng replaceAll #Để thay thế nhiều ký tự trong một chuỗi, hãy xâu chuỗi nhiều lời gọi đến phương thức 2, e. g. 3. Phương thức 4 sẽ trả về một chuỗi mới, trong đó tất cả các lần xuất hiện của các ký tự được thay thế bằng ký tự thay thế được cung cấpChúng tôi đã chuyển 2 đối số sau cho phương thức 4
Cách tiếp cận này dài dòng hơn một chút sau đó sử dụng biểu thức chính quy với một lớp ký tự. Tuy nhiên, nó cho phép chúng tôi tránh sử dụng biểu thức chính quy nếu chúng tôi có các ký tự cụ thể mà chúng tôi muốn thay thế Sự khác biệt về hiệu suất hầu như không đáng kể, trừ khi bạn đang làm việc với một chuỗi dài hàng chục nghìn ký tự Phương thức 4 trả về một chuỗi mới trong đó tất cả các lần xuất hiện của chuỗi con được thay thế bằng chuỗi thay thế được cung cấp. Điều này cho phép chúng tôi xâu chuỗi càng nhiều cuộc gọi đến phương thức càng tốtMột cách tiếp cận khác, nhưng cũng rất phổ biến mà bạn có thể thấy là sử dụng ký tự 71 dạng ống, đóng vai trò là một 72 trong biểu thức chính quyĐây là một ví dụ thay thế từng khoảng trắng, dấu gạch dưới hoặc dấu chấm than bằng dấu chấm hỏi Ký tự đặc biệt 73 khớp với khoảng trắng (dấu cách, tab, dòng mới)Đường ống 71 cho phép chúng tôi khớp một trong các ký tự trong biểu thức chính quyBạn chọn cách tiếp cận nào là vấn đề sở thích cá nhân. Tôi sẽ sử dụng lớp ký tự 9 với phương pháp 1 nếu nhóm của tôi cảm thấy thoải mái với các biểu thức chính quy. Mặt khác, tôi có thể gọi chuỗi các cuộc gọi đến phương thức 4 ________ 05 là biểu thức chính quy, là đầu vào dự kiến cho phương thức Java ________ 06. Tuy nhiên, Kotlin có một lớp gọi là 7 và 8 bị quá tải để lấy đối số Chuỗi hoặc RegexVì vậy, bạn phải gọi 9 một cách rõ ràng, nếu không, nó nghĩ rằng bạn muốn thay thế Chuỗi ký tự bằng chữ 5. Điều đáng nói là 1 trong Kotlin được sử dụng với các mẫu Chuỗi, nghĩa là trong các chuỗi thông thường, bạn phải thoát nó bằng dấu gạch chéo ngược. Kotlin hỗ trợ các Chuỗi thô (được đánh dấu bằng ba 2 thay vì một) mà không cần phải thoát các chuỗi này, nghĩa là bạn có thể làm điều này________số 8Nói chung, bạn cần một đối tượng Regex. Ngoài việc sử dụng 3 (có thể có hoặc không phải là đường cú pháp), bạn cũng có thể tạo một đối tượng Regex bằng cách sử dụng hàm tạo cho lớp
Cả hai tín hiệu này cho thấy chuỗi của bạn là biểu thức chính quy và đảm bảo sử dụng đúng ____ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ Giải pháp liên quanJava – Cách nhanh nhất để xác định xem căn bậc hai của một số nguyên có phải là số nguyên hay khôngTôi đã tìm ra một phương pháp hoạt động nhanh hơn ~35% so với mã 6bits+Carmack+sqrt của bạn, ít nhất là với CPU (x86) và ngôn ngữ lập trình (C/C++) của tôi. Kết quả của bạn có thể khác, đặc biệt là vì tôi không biết yếu tố Java sẽ diễn ra như thế nào Cách tiếp cận của tôi là gấp ba lần
Ngay cả khi mã này không hoạt động nhanh hơn đối với bạn, tôi hy vọng bạn thích một số ý tưởng trong đó. Mã hoàn chỉnh, đã kiểm tra theo sau, bao gồm các bảng được tính toán trước 0Java – Cách đọc/chuyển đổi InputStream thành Chuỗi trong JavaTóm tắt các câu trả lời khác Tôi đã tìm thấy 11 cách chính để thực hiện việc này (xem bên dưới). Và tôi đã viết một số bài kiểm tra hiệu suất (xem kết quả bên dưới) Các cách chuyển đổi InputStream thành String
Cảnh báo
Kiểm tra hiệu năng Kiểm tra hiệu suất cho 57 nhỏ (độ dài = 175), url trong github (chế độ = Thời gian trung bình, hệ thống = Linux, điểm 1.343 là tốt nhất) 2Kiểm tra hiệu suất cho lớn 57 (độ dài = 50100), url trong github (chế độ = Thời gian trung bình, hệ thống = Linux, điểm số 200,715 là tốt nhất) |