public class ReplaceString { public static void main(String[] args) { Float f = 1f; System.out.println(f.toString());//1.0 System.out.println(replace("1"));; // 转换后为1 System.out.println(replace("10"));; // 转换后为10 System.out.println(replace("1.0"));; // 转换后为1 System.out.println(replace("1.010"));; // 转换后为1.01 System.out.println(replace("1.01"));; // 转换后为1.01 } /** * 使用java正则表达式去掉多余的.与0 * @param s * @return string */ public static String replace(String s){ if(null != s && s.indexOf(".") > 0){ s = s.replaceAll("0+?$", "");//去掉多余的0 s = s.replaceAll("[.]$", "");//如最后一位是.则去掉 } return s; } }
第一种是使用正则表达式来去除小数点与00位数,可是这种方法不太简便,因此咱们使用第二种更为简单的方式:java
import java.math.BigDecimal; public class ReplaceString { public static void main(String[] args) { String str1 = "1234.01020300"; String str2 = "1234.000"; String result1 = new BigDecimal(str1).stripTrailingZeros().toString();//stripTrailingZeros()此方法返回与移除全部尾部零的数值上相等的BigDecimal,需注意toString()是使用科学计数法输出 String result2 = new BigDecimal(str2).stripTrailingZeros().toPlainString();//toPlainString()返回不带指数字段的此 BigDecimal 的字符串表示形式 System.out.println(result1);//输出1234.010203 System.out.println(result2);//输出1234 } }