Java:如何在Array中再次重新分析'Array.toString'?

时间:2013-04-29 19:41:12

标签: java arrays hashmap

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

PS:我对java不熟悉,但我无法在这里找到解决方案或通过谷歌找到解决方案。

5 个答案:

答案 0 :(得分:0)

没有任何现成的方法。因此,您必须创建自己的方法,将您的字符串解析为double-s数组。您可以使用String.split(...)方法执行此操作。

答案 1 :(得分:0)

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

答案 2 :(得分:0)

Scanner sc = new Scanner(stringToParse);
ArrayList<Double> buffer = new ArrayList<>();
while(sc.hasNextDouble())
    buffer.add(sc.nextDouble());
Object[] doubles = buffer.toArray();

答案 3 :(得分: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));
}

答案 4 :(得分:0)

有可能,有点摆弄 - 顺便说一下,使用数组作为Map的关键是一个非常非常糟糕的主意(即使它被转换为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中。