mirror of
https://github.com/openjdk/jdk.git
synced 2025-08-27 14:54:52 +02:00
8236201: Better Scanner conversions
Reviewed-by: ahgross, rhalade, rriggs, skoivu, smarks
This commit is contained in:
parent
833a3897dc
commit
f77016b935
1 changed files with 10 additions and 10 deletions
|
@ -428,7 +428,7 @@ public final class Scanner implements Iterator<String>, Closeable {
|
|||
// here but what can we do? The final authority will be
|
||||
// whatever parse method is invoked, so ultimately the
|
||||
// Scanner will do the right thing
|
||||
String digit = "((?i)["+radixDigits+"]|\\p{javaDigit})";
|
||||
String digit = "((?i)["+radixDigits+"\\p{javaDigit}])";
|
||||
String groupedNumeral = "("+non0Digit+digit+"?"+digit+"?("+
|
||||
groupSeparator+digit+digit+digit+")+)";
|
||||
// digit++ is the possessive form which is necessary for reducing
|
||||
|
@ -478,7 +478,7 @@ public final class Scanner implements Iterator<String>, Closeable {
|
|||
private Pattern decimalPattern;
|
||||
private void buildFloatAndDecimalPattern() {
|
||||
// \\p{javaDigit} may not be perfect, see above
|
||||
String digit = "([0-9]|(\\p{javaDigit}))";
|
||||
String digit = "(([0-9\\p{javaDigit}]))";
|
||||
String exponent = "([eE][+-]?"+digit+"+)?";
|
||||
String groupedNumeral = "("+non0Digit+digit+"?"+digit+"?("+
|
||||
groupSeparator+digit+digit+digit+")+)";
|
||||
|
@ -1289,25 +1289,25 @@ public final class Scanner implements Iterator<String>, Closeable {
|
|||
|
||||
// These must be literalized to avoid collision with regex
|
||||
// metacharacters such as dot or parenthesis
|
||||
groupSeparator = "\\" + dfs.getGroupingSeparator();
|
||||
decimalSeparator = "\\" + dfs.getDecimalSeparator();
|
||||
groupSeparator = "\\x{" + Integer.toHexString(dfs.getGroupingSeparator()) + "}";
|
||||
decimalSeparator = "\\x{" + Integer.toHexString(dfs.getDecimalSeparator()) + "}";
|
||||
|
||||
// Quoting the nonzero length locale-specific things
|
||||
// to avoid potential conflict with metacharacters
|
||||
nanString = "\\Q" + dfs.getNaN() + "\\E";
|
||||
infinityString = "\\Q" + dfs.getInfinity() + "\\E";
|
||||
nanString = Pattern.quote(dfs.getNaN());
|
||||
infinityString = Pattern.quote(dfs.getInfinity());
|
||||
positivePrefix = df.getPositivePrefix();
|
||||
if (!positivePrefix.isEmpty())
|
||||
positivePrefix = "\\Q" + positivePrefix + "\\E";
|
||||
positivePrefix = Pattern.quote(positivePrefix);
|
||||
negativePrefix = df.getNegativePrefix();
|
||||
if (!negativePrefix.isEmpty())
|
||||
negativePrefix = "\\Q" + negativePrefix + "\\E";
|
||||
negativePrefix = Pattern.quote(negativePrefix);
|
||||
positiveSuffix = df.getPositiveSuffix();
|
||||
if (!positiveSuffix.isEmpty())
|
||||
positiveSuffix = "\\Q" + positiveSuffix + "\\E";
|
||||
positiveSuffix = Pattern.quote(positiveSuffix);
|
||||
negativeSuffix = df.getNegativeSuffix();
|
||||
if (!negativeSuffix.isEmpty())
|
||||
negativeSuffix = "\\Q" + negativeSuffix + "\\E";
|
||||
negativeSuffix = Pattern.quote(negativeSuffix);
|
||||
|
||||
// Force rebuilding and recompilation of locale dependent
|
||||
// primitive patterns
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue