# HG changeset patch # User redestad # Date 1518615938 -3600 # Node ID 99b94636fcd3240fec5e46a5b12faf12ae790e0d # Parent 454518b338b01f7f519b7a8e27fa5bfead00a364 8197829: Optimize CLDRCalendarDataProviderImpl::retrieveInteger Reviewed-by: naoto diff -r 454518b338b0 -r 99b94636fcd3 src/java.base/share/classes/sun/util/cldr/CLDRCalendarDataProviderImpl.java --- 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 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(); } }