2010-05-18 13 views
8

Aşağıdaki sayılar vardır:Biçim dize haline xxx1, xx10 veya 1 ###, 10 ## vs

: 1, 2, 3, 4, 10

Ama hiç böyle bu sayıları yazdırmak istediğiniz

0001 
0002 
0003 
0004 
0010 

Google'da arama yaptım. anahtar kelime sayı biçimidir. Ama hiçbir şeyim yok, sadece aldım, 1,000,000.00 gibi ondalık bir şekilde biçimlendir. Umarım bana bir referans önerebilir veya bu sorunu çözmek için bana bir şey verebilirsin.

Teşekkür

Düzen, biz NumberFormat veya String.format ("% 4d", birdeğer) kullanabilir ; ancak tamsayıdan önce 0 karakterini eklemek içindir. Nasıl x, # veya belki whitespace gibi karakterleri kullanmak istersem. Yani karakter haline: xxxx1 xxx10 veya ####1###10 veya 1####10###

+0

@Martijn Courteaux: Bu soru yineleniyor düşünüyorum (ve bunu olmasa çok şaşıracaksınız), yorumunda bunu söyleyin ve biz oy verebilir Eğer Bunu kapatmak için. "Deja-vu" etiketi çok hoştu, ama buradaki şeyleri böyle yapmıyoruz. –

cevap

12
NumberFormat nf = new DecimalFormat("0000"); 
System.out.println(nf.format(10)); 

Bu baskılar "0010".

7

Ne yapmak istiyoruz "Pad" senin sonucudur this

bir göz atın.
örn. String.format("%04d", myValue);

4

Sen Yani senin durumundaki String.format();

public static String addLeadingZeroes(int size, int value) 
{ 
    return String.format("%0"+size+"d", value); 
} 

kullanabilirsiniz:

System.out.println(addLeadingZeroes(4, 75)); 

baskılar bir sapık yanıt için

0075 
+0

Daha doğal okuyabileceğini düşünüyorum: "... Sıfırlar (int sıfırlar, int değer)" 'gibi kullanılacak:' addLeadingZeroes (4, 75) ' – OscarRyz

+0

@Oscar: Sanmıyorum. Çünkü boyut için '4' ve değer için '75' geçebilirsiniz. O zaman dört değil sadece iki sıfırın olacak. –

+0

Belki, ama 'addLeadingZeroes (75, 4) 'i okuyarak bana 4 numara önünde 74 sıfır olduğunu söyleyebilirim: -/Mangst cevabı mantıklı geliyor :) – OscarRyz

0

.

int i = 10; 
System.out.println((50000 + i + "").substring(1)); 

baskılar

0010