Соответствующие символы будут заменены. Таким образом, вместо соответствия нецифровой цифре в конце вы можете использовать lookahead, который выполнит желаемую проверку, но не будет использовать никаких символов. Кроме того, сокращение для нецифровой цифры \D
, что немного лучше, чем [^0-9]
:
String string = "5.07+12.0+2.14";
string = string.replaceAll("\\.0(?=\\D)","");
Если вы хотите заменить все конечные нули (например, замените 5.00
на 5
вместо 50
, что вам, вероятно, не нужно), затем повторите 0 или еще раз с +
, чтобы обеспечить замену всех нулей после десятичной точки:
String string = "5.07+12.000+2.14";
string = string.replaceAll("\\.0+(?=\\D)","");
Если строка никогда не содержит букв или символов подчеркивания _
символов (эти и числовые символы считаются символами слова), то вы можете сделать ее еще красивее с границей слова вместо заглядывания. Граница слова, как это звучит, будет соответствовать позиции с символом слова на одной стороне и несловесным символом на другой стороне с \b
:
string = string.replaceAll("\\.0+\\b","");