変数degreeOfDifficulty
が "1.2" から "4.8" (両端を含む) の数値であるかどうかを判断しようとしており、文字値を受け入れないようにしています。つまり、「1.0」、「4.9」、「a」、および「!」無効です。「1.2」「4.8」「4.0」「4」が有効です。これまでのところ、私は持っています:
degreeOfDiffString.matches("^[1](\\.[2-9]?)?|^[2-3](\\.[0-9]?)?|[4](\\.[0-8]?)?"))
文字を入力するとエラーがスローされる何か不足していますか?