将字符串解析为数字

2022-09-01 21:42:52

我有一个列表,它将存储数字对象。该列表将通过解析字符串列表来填充,其中每个字符串可以表示 Number 的任何子类。

如何将字符串解析为通用数字,而不是整数或浮点数等特定数字?


答案 1

无法实例化 Number,因为它是一个抽象类。我建议传入 Numbers,但是如果你在 Strings 上设置了字符串,你可以使用任何子类来解析它们,

Number num = Integer.parseInt(myString);

Number num = NumberFormat.getInstance().parse(myNumber);

@See数字格式


答案 2

您可以使用 java.text.NumberFormat 类。此类具有一个 parse() 方法,该方法解析给定的字符串并返回相应的 Number 对象。

        public static void main(String args[]){
            List<String> myStrings = new ArrayList<String>(); 
            myStrings.add("11");
            myStrings.add("102.23");
            myStrings.add("22.34");

            NumberFormat nf = NumberFormat.getInstance();
            for( String text : myStrings){
               try {
                    System.out.println( nf.parse(text).getClass().getName() );
               } catch (ParseException e) {
                    e.printStackTrace();
               }
           }
        }