3

ハッシュマップのキーとして使用するために文字列に変換する配列があります。[5.0, -1.0, 2.0]このような文字列を 3 つの double 値からなる配列に変換するにはどうすればよいでしょうか?

PS: 私は Java の初心者ですが、ここまたは Google で解決策を見つけることができませんでした。

4

5 に答える 5

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

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

Map少し手を加えるだけで可能です。ちなみに、配列を a のキーとして使用することは(たとえ 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に元々含まれていた値を持つ double の配列になりますString

于 2013-04-29T19:52:42.527 に答える
0

このための準備が整った方法はありません。そのため、文字列を解析して double-s の配列に戻す独自のメソッドを作成する必要があります。String.split(...)たとえば、メソッドを使用してそれを行うことができます。

于 2013-04-29T19:44:01.067 に答える