Czy ktoś może mi wyjaśnić, dlaczego poniższy kod podaje dane wyjściowe?Numer parsowania z ujemnym przyrostkiem
1.2
null
Running następującego kodu:
String positive = "1.2+";
String negative = "1.2-";
DecimalFormat format = new DecimalFormat("0.0");
format.setPositiveSuffix("+");
format.setNegativeSuffix("-");
format.setDecimalFormatSymbols(DecimalFormatSymbols.getInstance(Locale.US));
System.out.println(format.parse(positive, new ParsePosition(0)));
System.out.println(format.parse(negative, new ParsePosition(0)));
Działa to jednak, ale nie podoba mi się powtórzenia wzoru:
String positive = "1.2+";
String negative = "1.2-";
DecimalFormat format = new DecimalFormat("0.0+;0.0-");
format.setDecimalFormatSymbols(DecimalFormatSymbols.getInstance(Locale.US));
System.out.println(format.parse(positive, new ParsePosition(0)));
System.out.println(format.parse(negative, new ParsePosition(0)));
jest przyrostkiem nie mają być wykorzystywane do rozbiór gramatyczny zdania?
parsowanie nie gwarantuje zużycia całego ciągu znaków. Zatrzyma się, gdy otrzyma postać, z której nie wie, co robić. –
@PeterLawrey Wiem, ale myślałem, że powiedziałem, co zrobić, gdy ustawiam sufiks? I dlaczego obsługuje +, ale nie -? –
@PeterLawrey Zakładam też, że drugi kod jest wolniejszy, ponieważ musiałby sparsować cały ciąg dwa razy? –