・ ミス 1 先頭に必要のない 0 がいくつかついてしまう ・ 本来 1 である数値が 0001 と表記されてしまう ・ 本来 0.001 である数値が 00.001 と表記されてしまう ・ ミス 2 小数である数値の末尾に必要のない 0 がいくつかついてしまう ・ 本来 0.1 である数値が 0.10 と表記されてしまう ・ ミス 3 小数である数値に小数点が複数個ついてしまう ただし、 1 つめの小数点の位置が正しい小数点の位置であるものとします ・ 本来 0.123 である数値が 0.1.2.3 と表記されてしまう。 表記が正しくない可能性のある数値を表す文字列 S が与えられるので、その数値を正しい表記にしてください。 S を数値として扱うと上手く処理が行えないので気をつけてください。
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.text.DecimalFormat; public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String s = br.readLine(); System.out.println(s); String num = s.replaceAll("[^0-9.]", ""); String[] r = num.split("\\."); if (r.length == 1) { num = r[0]; System.out.println(num); System.out.println(r.length); } else if (r.length == 2) { if (r[0].equals("0")) { num = "0." + r[1]; } else { num = r[0] +