जावा 1.6 में:String.Format() इस कोड को ठीक काम करता है फेंकता FormatFlagsConversionMismatchException
java.util.FormatFlagsConversionMismatchException: Mismatched Convertor =s, Flags= #
at java.util.Formatter$Transformer.transformFromString(Formatter.java:1020)
at java.util.Formatter$Transformer.transform(Formatter.java:861)
at java.util.Formatter.format(Formatter.java:565)
at java.util.Formatter.format(Formatter.java:509)
at java.lang.String.format(String.java:1961)
कोई समाधान:
public static String padLeft(String s, int n)
{
if (n <= 0)
return s;
int noOfSpaces = n * 2;
String output;
noOfSpaces = s.length() + noOfSpaces;
output = String.format("%1$#" + noOfSpaces + "s", s);
return output;
}
लेकिन नए संस्करण (और कुछ अन्य वीएम कार्यान्वयन) इस Exception
फेंक?
जावा के कौन से संस्करण यह काम करते हैं, और जावा के कौन से संस्करण विफल होते हैं? क्या आप प्रत्येक संस्करण पर एक ही डेटा के साथ परीक्षण कर रहे हैं (यानी यह संभव है कि जावा संस्करण वास्तव में अप्रासंगिक है और यह वास्तव में कुछ इनपुट है जो समस्या उत्पन्न करते हैं?) –
हाँ। दोनों मामलों में यह वही डेटा इनपुट है। ओरेकल जेडीके में हर समय काम करता है लेकिन आईबीएम जेडीके में विफल रहता है। दूसरों ने एक ही कारण की सूचना दी है - https://issues.apache.org/jira/browse/SSHD-104 – user170008
jre-1.7.0_06 का उपयोग करके, काम नहीं करता है। 1.6.0_30 के साथ काम करता है – Achow