/** * If the trailing part of the value is roman number then replaces it with * decimal number and returns the changed value, otherwise returns the * passed value */ public static String replaceLastRomanNumberToDecimal(String value) { if (value == null || !value.contains(" ")) { return value; } String number = value.substring(value.lastIndexOf(' ')).trim(); if (isRomanNumber(number)) { int decimalNumber = romanToDecimal(number); return value.substring(0, value.lastIndexOf(' ') + 1) + decimalNumber; } return value; }
public static String replaceNumbersToDecimal(String value) { if (value == null) { return value; } String[] tokens = value.split(" "); String[] newTokens = new String[tokens.length]; for (int i = 0; i < tokens.length; i++) { String token = tokens[i]; if (isRomanNumber(token)) { newTokens[i] = String.valueOf(romanToDecimal(token)); } else if (isEngWordNumber(token)) { newTokens[i] = String.valueOf(wordToDecimal.get(token.toUpperCase())); } else { newTokens[i] = token; } } return StringUtils.join(newTokens, " "); }
Preconditions.checkArgument(isRomanNumber(romanNumber));