ゼロサプレス

英語だと「zero suppress」、「zero suppression」。
ゼロ抑制!

数字の余分なゼロを消すことです。

 

 BigDecimalで呼んでも、小数点以下のゼロって消えないんですよね。
 

String aa = "77.00";

String aa = "77.00";

String ab = "0077.000";

String ac = "-00032.32000";

 

System.out.println(new BigDecimal(aa)); //77.00

System.out.println(new BigDecimal(ab)); //77.000

System.out.println(new BigDecimal(ac)); //-32.32000

一般的には正規表現で解消している模様。

import java.util.regex.Matcher;
import java.util.regex.Pattern;

String [] array = {"1.1010", "-0002.2220","1.0200"};

String str = "(.*\\..+[1-9])0*$";
Pattern ptn = Pattern.compile(str);
for (String s: array) {
    Matcher m = ptn.matcher(s);
    if(m.matches()) {
        System.out.println(m.group(1));
    }
}         //1.01、-0002.222、1.02  -0002.222が残ってしまったけど。。