Здраствуйте, помогите пожалуйста. Нужно расставить пробелы в этой строке (1-(34+3*(2-623 )*8))/21), так чтоб пробелы стояли ТОЛЬКО до и после знака не являющегося числом, по итогу строка должна иметь такой вид: ( 1 - ( 34 + 3 * ( 2 - 623 ) * 8 ) ) / 21 ), до и после знака должен стоять только один пробел. Я написал код, но есть две проблемы, цикл не идет до конца так как длина строки sb увеличивается а длина входящей строки нет, и данный метод расставляет пробелы в числах в которых больше одного разряда. public static String spacing(String x) { var i = 0; StringBuffer sb = new StringBuffer(x); while (i <= x.length()) { if (x.substring(i,i++) != "[0-9]") { sb.insert(i, " "); } i++; } return sb.toString(); }