Строка является неизменной, поэтому мы не можем вставить вложенные теги в существующую строку. Таким образом, вам нужен метод, который создает новую строку. Вы можете использовать регулярное выражение или использовать построитель строк для генерации новой строки, например:
public String parseString(String input) {
StringBuilder builder = new StringBuilder();
String format = "<sub>%c</sub>";
for(char c:input.toCharArray()) {
if (Character.isDigit(c)) {
builder.append(String.format(format, c));
} else {
builder.append(c);
}
}
return builder.toString();
}