Может ли простое регулярное выражение помочь вам?Сначала вы можете преобразовать различные форматы ввода в ваш известный формат ввода, который может быть обработан с помощью Double.valueOf()
.
String pattern = "(\\D?)(\\d+)(\\.?)(\\d+)(\\D+)(\\d+)";
List<String> inputs = Arrays.asList("-6.535402781EX-05",
"-6.535402781EXP-05",
"-6.535402781EE-05",
"-6.535402781E-05",
"6.535402781E-05",
"6.535402781",
"-6.535402781",
"6.5",
"6");
inputs.forEach((String in) -> System.out.println(in.replaceAll(pattern, "$1$2$3$4E-$6")));
Входные данные в моем примере должны быть преобразованы в следующее, и их анализ должен быть возможен с помощью Double.valueOf()
.
-6.535402781E-05
-6.535402781E-05
-6.535402781E-05
-6.535402781E-05
6.535402781E-05
6.535402781
-6.535402781
6.5
6
Вы должны быть осторожны, чтобы добавить достаточное количество тестов для всех входных форматов, которые хотите поддерживать.