将字符串转换为双重错误

时间:2016-11-18 12:51:37

标签: java string double

我在将基本浮点数组转换为字符串然后转换为double时遇到问题。

我有:

 private static float[] getSample() {

      float[] sample = new float[sampleSize];

      // Gets the sample an returns it
      sampleProvider.fetchSample(sample, 0);
      return sample;
  }

返回一个float []然后我使用:

String sampleColor = Arrays.toString(getSample());

这例如返回:[0.62]。我认为问题在于方括号 我可以使用以下方式验证:

System.out.println(sampleColor);

但是当我尝试将其转换为双倍时,它只会给我一个错误。我尝试使用parseDouble转换它:

double colorT = Double.parseDouble(sampleColor);

4 个答案:

答案 0 :(得分:1)

假设您只想要数组中的第一个浮点数:

double colorT = getSample()[0];

注意:无需转换为String作为中间步骤。

答案 1 :(得分:0)

如果[]在字符串中,则在解析时会抛出异常。要解析它,你必须先删除它们。例如:samplecolor=sampleColor.replaceAll("[\\[\\]]", "");

答案 2 :(得分:0)

如果要将float []转换为double [],可以使用以下代码:

float[] fArray = new float[] {0.62f};

double[] dArray = new double[fArray.length];

for (int i = 0; i < dArray.length; i++) {
    dArray[i] = fArray[i];
}

答案 3 :(得分:-1)

你是对的,这是因为括号。 Double.parseDouble(String s)期待的是包含Double值的String。在这里,你给它一个String,技术上是一个Double值数组。

解决这个问题的方法是解析你的String。为此,您需要删除括号,并使用逗号分隔值,如果数组中可能有多个。

相关问题