質問: Integer.parseInt(b); System.out.print(r); //10 ``` ### 質問 1. ゼロ落ちする理由はint型だからですよね。 2. 解決策はありますか。 ### 今のところの解決策 先頭が0の場合とそれ以外で場合分けすることしかできませんが、それだといくつ先頭に0があるのかわからないので不十分です。
回答: int型が先頭部分の0を保持できないのは仕様上どうしようもないので、 数値のintを桁数を合わせて配列で持っておいて文字列として得たい時だけ桁数で0埋めするしかないのでは。 ``` String str = "0n10yh"; String b = str.replaceAll("\\D",""); int[] r = {Integer.parseInt(b), b.length()}; System.out.print(String.format("%0" + r[1] + "d", r[0])); //010 ```