【问题标题】:Java: Remove double from string and store in arrayJava:从字符串中删除双精度并存储在数组中
【发布时间】:2009-09-13 16:10:55
【问题描述】:

我有一个字符串,每次都会不同,但遵循以下形式 -3.33,-46.53,37.39,26.55,97.11,68.46,-32.46,-5.89,-62.89,-7.9, 我想删除每个数字并存储为数组中的双精度数。 即使是伪代码也会很棒,我正在画一个空白。 干杯

【问题讨论】:

  • 干杯,伙计们,只是想知道在我从文件中读取并且不知道每个文件有多大时使用数组列表会更好
  • 您应该尝试将其作为一个单独的问题提出,并提供更多详细信息,但如果您有未知数量的此类行,那么这就是数组列表的设计目的。如果都在一行上,一次读入内存,那么预分配的数组就有意义了。
  • 谢谢大家,仍然有问题,但我会在单独的帖子中要求澄清事情。再次欢呼。

标签: java arrays string


【解决方案1】:
 String[] doubles = myString.split(",");

然后遍历双精度数组并执行 Double.parseDouble();

【讨论】:

    【解决方案2】:

    另一种方式,从文件中读取输入并在读取时解析项目。

    static java.util.ArrayList<Double> getData(String filename) throws FileNotFoundException {
        java.util.ArrayList<Double> result = new java.util.ArrayList<Double>();
        java.util.Scanner sc = new java.util.Scanner(new java.io.File(filename));
    
        sc.useDelimiter(",");
        while (sc.hasNext())
            result.add(Double.parseDouble(sc.next()));
        sc.close();
    
        return result;
    }
    

    如果需要,您可以将它们存储在一个数组中,例如:

        Double data[] = null;
        getData("input.dat").toArray(data);
    

    【讨论】:

      【解决方案3】:

      可能是这样的:

      String[] sa = yourString.split(",");
      Double[] da = new Double[sa.length];
      int idx = o;
      for(String s : sa) {
         da[idx++] = Double.parseDouble(s); 
      }
      

      【讨论】:

        【解决方案4】:

        根据','拆分字符串并存储到字符串数组中。

        String[] arr= Str.split(",");
        

        然后创建一个双精度数组并将每个 str 值放入该双精度数组中。

        Double[] res= new Double[arr.length];
        for(int i=0;i<arr.length;i++){
            res[i] = Double.parseDouble(arr[i]); 
        }
        

        【讨论】:

          猜你喜欢
          • 2013-02-23
          • 2011-08-05
          • 2020-06-26
          • 2011-09-05
          • 1970-01-01
          • 2015-03-09
          • 2014-02-02
          • 1970-01-01
          • 2015-07-23
          相关资源
          最近更新 更多