### Question:
NumberNormalizer implements
        org.apache.uima.annotator.regex.extension.Normalization { public static String normalizeExponents(String input) { Matcher m = eExp.matcher(input); if (m.find()) { Float number = Float.parseFloat(m.group(1)); int exp = Integer.parseInt(m.group(3)); boolean negative = m.group(2) != null && m.group(2).equals("-"); if (negative) exp *= -1; return FORMATTER.format(number * Math.pow(10, exp)); } m = xExp.matcher(input); if (m.find()) { Float number = Float.parseFloat(m.group(1)); int exp = Integer.parseInt(m.group(3)); boolean negative = m.group(2) != null && m.group(2).equals("-"); if (negative) exp *= -1; String s = FORMATTER.format(number * Math.pow(10, exp)); return s; } return input; } NumberNormalizer(); String normalize(String input, String ruleId); static String normalizeExponents(String input); static final DecimalFormat FORMATTER; }### Answer:
@Test public void test() { assertEquals("500", NumberNormalizer.normalizeExponents("5E2")); assertEquals("0.05", NumberNormalizer.normalizeExponents("5E-2")); assertEquals("1200", NumberNormalizer.normalizeExponents("12x10(2)")); assertEquals("0.0005", NumberNormalizer.normalizeExponents("5x10(-4)")); assertEquals("0.0005", NumberNormalizer.normalizeExponents("5x10(-4⊂⊃)")); }