Tôi có một số nguyên 100
, làm thế nào để định dạng nó trông giống như 00000100
(luôn luôn 8 chữ số dài)?Làm cách nào để thêm số không được đệm vào một số trong Java?
Trả lời
Hãy thử điều này:
String formattedNumber = String.format("%08d", number);
Mỗi lần được gọi là cá thể trình tạo mới i s được tạo. Vì vậy, tôi phải thừa nhận rằng với số lượng lớn dữ liệu, nó có thể gây ra vấn đề bộ nhớ lớn. –
Bạn cũng có thể sử dụng lớp DecimalFormat
, như vậy:
NumberFormat formatter = new DecimalFormat("00000000");
System.out.println(formatter.format(100)); // 00000100
String.format
sử dụng một chuỗi định dạng được mô tả here
này cũng làm việc :
int i = 53;
String spaceHolder = "00000000";
String intString = String.valueOf(i);
String string = spaceHolder.substring(intString.lenght()).contract(intString);
Nhưng các ví dụ khác dễ dàng hơn nhiều.
Một cách khác. ;)
int x = ...
String text = (""+(500000000 + x)).substring(1);
-1 => 99.999.999 (nines bổ sung)
import java.util.concurrent.Callable;
/* Prints.
String.format("%08d"): Time per call 3822
(""+(500000000+x)).substring(1): Time per call 593
Space holder: Time per call 730
*/
public class StringTimer {
public static void time(String description, Callable<String> test) {
try {
// warmup
for(int i=0;i<10*1000;i++)
test.call();
long start = System.nanoTime();
for(int i=0;i<100*1000;i++)
test.call();
long time = System.nanoTime() - start;
System.out.printf("%s: Time per call %d%n", description, time/100/1000);
} catch (Exception e) {
System.out.println(description+" failed");
e.printStackTrace();
}
}
public static void main(String... args) {
time("String.format(\"%08d\")", new Callable<String>() {
int i =0;
public String call() throws Exception {
return String.format("%08d", i++);
}
});
time("(\"\"+(500000000+x)).substring(1)", new Callable<String>() {
int i =0;
public String call() throws Exception {
return (""+(500000000+(i++))).substring(1);
}
});
time("Space holder", new Callable<String>() {
int i =0;
public String call() throws Exception {
String spaceHolder = "00000000";
String intString = String.valueOf(i++);
return spaceHolder.substring(intString.length()).concat(intString);
}
});
}
}
+1 cho quảng cáo, mặc dù giải pháp chậm :-). –
Tuy nhiên, không hoạt động với các từ khóa phủ định. – polygenelubricants
Bạn có thể thấy nó không chậm như các giải pháp khác và hành vi không được xác định cho các từ khóa phủ định. Cũng giống như các giải pháp khác, sẽ có một DDDDDDDD không, trong đó D là một chữ số, đầu ra cho các số âm. –
Nếu bạn cần phải phân tích chuỗi này và hoặc hỗ trợ i18n xem xét mở rộng đối tượng
java.text.Format
. Sử dụng các câu trả lời khác để giúp bạn có được định dạng.
Nếu bạn chỉ cần in ra, đây là một phiên bản ngắn hơn:
System.out.printf("%08d\n", number);
Nếu Google Ổi là một lựa chọn:
String output = Strings.padStart("" + 100, 8, '0');
Ngoài Apache Commons Lang:
String output = StringUtils.leftPad("" + 100, 8, "0");
- 1. Android, làm thế nào để thêm một số đệm phải vào văn bản trong một spinner?
- 2. Trong PHP, làm cách nào để thêm vào chuỗi số không đệm và giữ nguyên phần đệm bằng không?
- 3. Làm thế nào để thêm đệm vào một nhãn UILabel?
- 4. Làm cách nào để lưu trữ một số nguyên trong bộ đệm của nút đệm?
- 5. Làm cách nào để thêm số hàng vào lưới ExtJS?
- 6. Làm cách nào để thêm thông số vào URL?
- 7. java 101, làm cách nào để đếm số đối số được chuyển vào chính?
- 8. Đệm một số trong NSString
- 9. Làm cách nào để tăng thêm một số trong Clojure?
- 10. Làm cách nào để thêm một nghìn seperator vào một số trong JavaScript?
- 11. Làm cách nào để định dạng một số trong Java?
- 12. Thêm không đệm vào một chuỗi
- 13. Trong Vim, có cách nào để sao chép số dòng hiện tại vào bộ đệm không?
- 14. Java thêm số 0 đứng đầu vào số
- 15. Làm thế nào để có được đại diện nhị phân 0-đệm của một số nguyên trong java?
- 16. C# Số tiền đệm với số không
- 17. cách thêm số dòng vào: QTextEdit?
- 18. Làm cách nào để thêm đệm vào vùng văn bản mà không làm tăng chiều rộng?
- 19. Làm thế nào để phân chia thành số thập phân và không nhận được số không trong Java?
- 20. Làm cách nào để kéo các hằng số `static final` từ một lớp Java vào một không gian tên Clojure?
- 21. Làm cách nào để thêm một số bước vào tác vụ capistrano?
- 22. Làm thế nào để thêm số giờ thay đổi vào một ngày trong PostgreSQL?
- 23. Làm cách nào để thêm số dòng không thể chọn chuột vào vim?
- 24. số nguyên đệm Left (định dạng phi thập phân) với số không trong Java
- 25. Làm cách nào để mã một bộ đệm tròn số nguyên đơn giản trong C/C++?
- 26. jQuery chắp thêm div vào một số
- 27. Làm cách nào để thêm các nút vào bố cục một cách theo chương trình trong một số dòng?
- 28. Thêm một số xử lý OpenCV vào luồng video gstreamer
- 29. Làm cách nào để thêm các phần tử tương ứng của một số danh sách số?
- 30. Làm cách nào để thêm hàng vào khung dữ liệu có tổng số?
'8 chữ số' (thay vì '8 chữ số') sẽ chính xác hơn – leonbloy