Có cách nào dễ dàng và năng động để định dạng số trong chuỗi để có thể đọc được không? Ví dụ: biến 10000000000
thành 10,000,000,000
. Tôi đã nhìn thấy this câu hỏi nhưng câu trả lời là lỗi thời và bị hỏng (một trong những ví dụ).Số có thể đọc được của con người
Trả lời
Đối với miền địa phương của tôi này dường như làm việc! Có lẽ không phải là chất độc thành phần nhất, nhưng nó có chức năng.
fn readable(mut o_s: String) -> String {
let mut s = String::new();
let mut negative = false;
let values: Vec<char> = o_s.chars().collect();
if values[0] == '-' {
o_s.remove(0);
negative = true;
}
for (i ,char) in o_s.chars().rev().enumerate() {
if i % 3 == 0 && i != 0 {
s.insert(0, ',');
}
s.insert(0, char);
}
if negative {
s.insert(0, '-');
}
return s
}
fn main() {
let value: i64 = -100000000000;
let new_value = readable(value.to_string());
println!("{}", new_value);
}
Điều này sẽ không hoạt động đối với một số số âm, hãy thử "-100000000" chẳng hạn. –
@DylanJamesMcGannon Cảm ơn bạn đã chỉ ra điều đó. Tôi đã giải quyết vấn đề đó. – electrometro
Hãy thử thuật toán psuedo này:
- Divide chuỗi chiều dài bằng 3
- Vòng mà xuống, và chúng tôi sẽ gọi nó là
x
Vòng qua chuỗi
x
lần, đi ngược:- Nhận chuỗi tại
x
lần 3 vị trí hoặc chỉ mục [(x lần 3) - 1], chúng tôi sẽ gọi nó lày
. - Thay
y
với"," + y
- Nhận chuỗi tại
Tôi chưa bao giờ sử dụng chất tẩy rửa trong cuộc sống của tôi, nhưng đây là những gì tôi đã đưa ra bằng cách dịch một giải pháp từ here:
fn main() {
let i = -117608854;
printcomma(i);
}
fn printcomma(mut i: i32) {
if i < 0 {
print!("-");
i=-i;
}
if i < 1000 {
print!("{}", i.to_string());
return;
}
printcomma(i/1000);
print!(",{:03}", i%1000);
}
lợi nhuận "-117.608.854"
- 1. GUID có thể đọc được của con người
- 2. type_info.name có thể đọc được của con người()
- 3. Cron đến chuỗi có thể đọc được của con người
- 4. Định dạng ngày có thể đọc được bằng con người
- 5. Biểu diễn chuỗi có thể đọc được của con người của bảng trong Lua
- 6. Khoảng thời gian có thể đọc được tự động của con người
- 7. lấy AST của con người có thể đọc được từ mã C++
- 8. Danh sách các id tin nhắn có thể đọc được của con người?
- 9. Chuyển đổi chuỗi octet snmp thành định dạng ngày có thể đọc được của con người
- 10. Tài liệu có thể đọc được của con người có thể thực hiện được với Spock không?
- 11. URL có thể đọc được của con người: tốt nhất là phân cấp?
- 12. đầu ra htop vào tệp có thể đọc được của con người
- 13. chuyển đổi micro giây thành thời gian có thể đọc được của con người
- 14. Bigquery - chọn dấu thời gian làm datetime có thể đọc được của con người
- 15. Thời gian trôi qua của con người có thể đọc được trong nhiều ngày
- 16. Sắp xếp theo định dạng văn bản có thể đọc được của con người
- 17. Chuyển tập tin llvm .bc thành tập tin .ll có thể đọc được của con người
- 18. Tăng thời gian ngày có thể đọc được của con người bây giờ
- 19. Chuyển đổi đối tượng lớp thành chuỗi có thể đọc được của con người
- 20. Định dạng ngày cho định dạng có thể đọc được của con người
- 21. Sử dụng Html.LabelFor để hiển thị nhãn có thể đọc được của con người?
- 22. Nhận trả lại 'loại' làm chuỗi có thể đọc được của con người
- 23. dấu thời gian có thể đọc được của con người trong hạt nhân Linux
- 24. Dịch vụ web để trả về số tự động có thể đọc được duy nhất của con người
- 25. Làm thế nào để có được tên lớp có thể đọc được của con người trong Ruby on Rails?
- 26. Chuyển đổi mili giây để thời gian có thể đọc được con người trôi đi
- 27. Địa chỉ IP C++ Dạng người có thể đọc được
- 28. Python - Chuyển đổi thời gian epoch với nano giây thành con người có thể đọc được?
- 29. Java chuyển đổi dòng nhân vật thành con người "có thể đọc được" Chuỗi
- 30. Định dạng ngày có thể đọc và phân tích cú pháp của con người trong Java
http: // stackoverflow.com/questions/26998485/rust-print-format-number-with-thousand-separator –