3

我有一个数组,我将其转换为字符串以将其用作哈希图中的键。如何将这样的字符串[5.0, -1.0, 2.0]再次转换为由三个双精度值组成的数组?

PS:我对java有点陌生,但我在这里或通过谷歌找不到解决方案。

4

5 回答 5

0

对此没有任何现成的方法。因此,您必须创建自己的方法,该方法会将您的字符串解析回双精度数组。你可以做到这一点,String.split(...)例如使用方法。

于 2013-04-29T19:44:01.067 回答
0

请参阅String.substring()和的文档String.split()

于 2013-04-29T19:44:06.427 回答
0
Scanner sc = new Scanner(stringToParse);
ArrayList<Double> buffer = new ArrayList<>();
while(sc.hasNextDouble())
    buffer.add(sc.nextDouble());
Object[] doubles = buffer.toArray();
于 2013-04-29T19:44:31.490 回答
0

像这样的东西可能会起作用

List<Double> yourDoubleList = new ArrayList<Double>();
String withoutBrackets = array.substring(1, array.length() - 1);
for(String number : withoutBrackets.split(",")) {
    yourDoubleList.add(Double.parseDouble(number));
}
于 2013-04-29T19:45:42.613 回答
0

有可能,有点摆弄 - 顺便说一句,使用数组作为 a 的键是一个非常非常糟糕的主意Map(即使它被转换为 a String),因为它可以改变它的内容。尝试这个:

String array = "[5.0, -1.0, 2.0]";
String[] data = array.substring(1, array.length()-1).split(", ");
double[] answer = new double[data.length];
for (int i = 0; i < data.length; i++)
    answer[i] = Double.parseDouble(data[i]);

现在answer将是一个双精度数组,其值最初包含在String.

于 2013-04-29T19:52:42.527 回答