हर संख्या, बाएँ और दाएँ पक्ष पर शून्य की अनंत राशि
यह प्रतिनिधित्व करने के लिए आप एक स्ट्रिंग
class PhoneNumber implements Comparable<PhoneNumber> {
private Long number;
public PhoneNumber(Long number) {
this.number = number;
}
public Long getNumber() {
return this.number;
}
public boolean equals(Object object) {
if (getNumber() == null && object == null) {
return true; //or false its depend
}
return getNumber().equals(object);
}
public int compareTo(PhoneNumber that) {
if(that == null) {
return -1;
}
Long thisNumber = getNumber();
Long thatNumber = that.getNumber();
if (thisNumber == null && thatNumber == null) {
return 0; //or -1
}
if (thisNumber == null && thatNumber != null) {
return -1;
}
return thisNumber.compareTo(thatNumber);
}
@Override
public String toString() {
return String.format("%010d", getNumber());
}
}
प्रयुक्त% 010d formating का उपयोग करना चाहिए मतलब % [argument_index $] [झंडे ] [चौड़ाई] [सटीक] रूपांतरण
झंडा 0 -। गद्दी शून्य 10 - गद्दी शून्य की राशि घ - दशमलव पूर्णांक
इंटरफ़ेस तुलनात्मक कार्यान्वयन आपको सूची को क्रमबद्ध करने की सकारात्मकता देता है।
List<PhoneNumber> phoneNumbers = new ArrayList();
phoneNumbers.add(new PhoneNumber (123L);
phoneNumbers.add(new PhoneNumber (123777L);
phoneNumbers.add(new PhoneNumber (125L);
phoneNumbers.add(new PhoneNumber (124L);
phoneNumbers.add(new PhoneNumber (126L);
Collections.sort(phoneNumbers);
for(PhoneNumber phoneNumber : phoneNumbers) {
System.Console.Out.WriteLine(phoneNumber);
}
उत्पादन
0000000000
000000
0000000124
0000000125
0000000126
000
Comparable String Formatter
स्रोत
2010-08-14 12:02:36
@ Raze2dust: इस मामले में किसी भी कोड की आवश्यकता नहीं है। –
@ जोन मेरा मतलब है कि यह एक यादृच्छिक संख्या प्रदर्शित करता है .. यह समझ में आता है कि यह अग्रणी शून्यों के साथ संख्या प्रदर्शित कर रहा है, लेकिन एक यादृच्छिक संख्या? मुझे हल करने के लिए कोड देखने की आवश्यकता होगी .. –
@ Raze2dust: ठीक है, "यादृच्छिक" नहीं - लेकिन इसे 'डबल' में संग्रहीत करना निश्चित रूप से डेटा खो सकता है। –