ハッシュマップのキーとして使用するために文字列に変換する配列があります。[5.0, -1.0, 2.0]
このような文字列を 3 つの double 値からなる配列に変換するにはどうすればよいでしょうか?
PS: 私は Java の初心者ですが、ここまたは Google で解決策を見つけることができませんでした。
このようなものがうまくいくかもしれません
List<Double> yourDoubleList = new ArrayList<Double>();
String withoutBrackets = array.substring(1, array.length() - 1);
for(String number : withoutBrackets.split(",")) {
yourDoubleList.add(Double.parseDouble(number));
}
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();
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
。
このための準備が整った方法はありません。そのため、文字列を解析して double-s の配列に戻す独自のメソッドを作成する必要があります。String.split(...)
たとえば、メソッドを使用してそれを行うことができます。