8197829: Optimize CLDRCalendarDataProviderImpl::retrieveInteger
Reviewed-by: naoto
--- a/src/java.base/share/classes/sun/util/cldr/CLDRCalendarDataProviderImpl.java Wed Feb 14 16:58:49 2018 +0800
+++ b/src/java.base/share/classes/sun/util/cldr/CLDRCalendarDataProviderImpl.java Wed Feb 14 14:45:38 2018 +0100
@@ -97,10 +97,11 @@
}
private static Optional<Integer> retrieveInteger(String src, String region) {
- return Arrays.stream(src.split(";"))
- .filter(entry -> entry.contains(region))
- .map(entry -> entry.substring(0, entry.indexOf(":")))
- .findAny()
- .map(Integer::parseInt);
+ int regionIndex = src.indexOf(region);
+ if (regionIndex >= 0) {
+ int start = src.lastIndexOf(';', regionIndex) + 1;
+ return Optional.of(Integer.parseInt(src, start, src.indexOf(':', start), 10));
+ }
+ return Optional.empty();
}
}