我有一个数组,我将其转换为字符串,以将其用作hashmap中的键。
如何将此[5.0, -1.0, 2.0]
之类的字符串再次转换为由三个双精度值组成的数组?
PS:我对java不熟悉,但我无法在这里找到解决方案或通过谷歌找到解决方案。
答案 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
中。