Better way to manipulate this string in sequence?
You could create a StringProcessor interface:

public interface StringProcessor {

    String process(String input);
}


public class BoldProcessor implements StringProcessor {

    public String process(final String input) {
        ...
    }
}


and create a List from the available implementations:

final List&lt;StringProcessor&gt; processors = new ArrayList&lt;StringProcessor&gt;();
processors.add(new ItalicProcessor());
processors.add(new BoldProcessor());
...


and use it:

String result = input;  
for (final StringProcessor processor: processors) {
    result = processor.process(result);
}
return result;