Если у вас есть контроль над a, один из других ответов, вероятно, лучший способ обойти это.
Предполагая, что у вас нет контроля над содержимым строки a, вы можете вызвать a.split ("order by"), сохранить две результирующие части в две переменные a1 и a2 и создать новую строку с b между a1 и a2 , Примерно так (не проверено):
String[] temp = a.split("order by");
String result = temp[0] + " " + b + " order by " + temp[1];
Опять же, я на самом деле не проверял это, но вы поняли.
С другой стороны, похоже, что вы выполняете там некоторые манипуляции с sql. Не делай этого, друг мой. Ваш код будет довольно уязвим для внедрения SQL. Вместо этого используйте подготовленные заявления.