我有一个数组,我将其转换为字符串以将其用作哈希图中的键。如何将这样的字符串[5.0, -1.0, 2.0]
再次转换为由三个双精度值组成的数组?
PS:我对java有点陌生,但我在这里或通过谷歌找不到解决方案。
对此没有任何现成的方法。因此,您必须创建自己的方法,该方法会将您的字符串解析回双精度数组。你可以做到这一点,String.split(...)
例如使用方法。
请参阅String.substring()
和的文档String.split()
。
Scanner sc = new Scanner(stringToParse);
ArrayList<Double> buffer = new ArrayList<>();
while(sc.hasNextDouble())
buffer.add(sc.nextDouble());
Object[] doubles = buffer.toArray();
像这样的东西可能会起作用
List<Double> yourDoubleList = new ArrayList<Double>();
String withoutBrackets = array.substring(1, array.length() - 1);
for(String number : withoutBrackets.split(",")) {
yourDoubleList.add(Double.parseDouble(number));
}
有可能,有点摆弄 - 顺便说一句,使用数组作为 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
.