Don't use String.replaceAll(String, String) in a loop
String.replaceAll(String, String)
compiles its first argument as a regular expression every time it is called. This can use a significant amount of time when parsing files even if the expression is relatively simple. A better way is to use Pattern.compile()
and store the result as a constant that will be reused. If only a single character is to be replaced then String.replaceAll(char, char)
is even faster. Current code to improve:
src/main/java/org/orekit/models/earth/troposphere/SaastamoinenModel.java:324: deltaRFileName.replaceAll("^\\^", "").replaceAll("\\$$", ""));
src/main/java/org/orekit/data/PoissonSeriesParser.java:572: final int nDoodson = (doodson < 0) ? 0 : Integer.parseInt(regularMatcher.group(doodson).replaceAll("[.,]", ""));
src/main/java/org/orekit/forces/gravity/potential/AstronomicalAmplitudeReader.java:140: final int doodson = Integer.parseInt(regularMatcher.group(columnDoodson).replaceAll("[.,]", ""));
src/main/java/org/orekit/forces/gravity/potential/FESCHatEpsilonReader.java:141: final int doodson = Integer.parseInt(regularMatcher.group(1).replaceAll("[.,]", ""));
src/main/java/org/orekit/forces/gravity/potential/FESCnmSnmReader.java:106: final int doodson = Integer.parseInt(regularMatcher.group(1).replaceAll("[.,]", ""));
src/main/java/org/orekit/files/ccsds/TDMParser.java:624: return CCSDSFrame.valueOf(frameName.replaceAll("-", ""));
src/main/java/org/orekit/files/ccsds/ODMParser.java:595: return CCSDSFrame.valueOf(frameName.replaceAll("-", ""));
src/main/java/org/orekit/gnss/antenna/SatelliteType.java:380: NAMES_MAP.put(satelliteAntennaCode.getName().replaceAll("[-_ ]", ""), satelliteAntennaCode);