Tôi nghĩ rằng một giải pháp đơn giản và thanh lịch hơn để chèn Chuỗi vào một vị trí nhất định sẽ là một lớp lót này:
target.replaceAll("^(.{" + position + "})", "$1" + insert);
Ví dụ: để chèn thiếu :
vào Chuỗi thời gian:
"-0300".replaceAll("^(.{3})", "$1:");
Những gì nó làm là, khớp các position
ký tự từ đầu chuỗi, các nhóm và thay thế nhóm bằng chính nó ( $1
) theo sau làinsert
chuỗi. Hãy nhớ thay thế, mặc dù luôn có một lần xuất hiện, bởi vì tham số đầu tiên phải là biểu thức chính quy.
Tất nhiên nó không có hiệu năng như giải pháp StringBuilder, nhưng tôi tin rằng sự gọn gàng và thanh lịch là một cách đơn giản và dễ đọc hơn (so với một phương pháp khổng lồ) là đủ để biến nó thành giải pháp ưa thích trong hầu hết các hoạt động không hiệu quả trường hợp sử dụng -critical.
Lưu ý Tôi đang giải quyết vấn đề chung trong tiêu đề vì lý do tài liệu, tất nhiên nếu bạn đang xử lý số thập phân, bạn nên sử dụng các giải pháp dành riêng cho tên miền đã được đề xuất.
String str = Integer.toString(j); //integer or string with white spaces<br/> str = new StringBuffer(str.trim()).insert(str.length()-2, ".").toString();