java字符串[[2.2,3.4],[1,3],[5,6.9]]转数组或list
时间: 2023-10-16 21:07:28 浏览: 40
要将形如 "[[2.2,3.4],[1,3],[5,6.9]]" 的字符串转换为 Java 数组或列表,你可以使用 `Gson` 库或手动解析字符串。下面将提供这两种方法的示例代码。
1. 使用 Gson 库进行转换:
首先,确保你的项目中已经引入了 Gson 库的依赖。然后,可以按照以下示例代码进行转换:
```java
import com.google.gson.Gson;
public class Main {
public static void main(String[] args) {
String jsonString = "[[2.2,3.4],[1,3],[5,6.9]]";
Gson gson = new Gson();
double[][] array = gson.fromJson(jsonString, double[][].class);
// 或者转换为 List<List<Double>> 类型
// List<List<Double>> list = gson.fromJson(jsonString, new TypeToken<List<List<Double>>>(){}.getType());
// 打印数组或列表元素
for (double[] arr : array) {
for (double num : arr) {
System.out.print(num + " ");
}
System.out.println();
}
}
}
```
上述代码使用 Gson 库的 `fromJson()` 方法将 JSON 字符串转换为指定类型的数组或列表。需要注意的是,这里使用了 `double[][]` 类型来表示包含浮点数的二维数组。如果你想转换为列表(List)类型,可以使用注释中的代码。
2. 手动解析字符串:
如果你不想使用第三方库,也可以手动解析字符串并构建对应的数组或列表。
```java
public class Main {
public static void main(String[] args) {
String jsonString = "[[2.2,3.4],[1,3],[5,6.9]]";
String[] groups = jsonString.replaceAll("\\[|\\]", "").split(",");
double[][] array = new double[groups.length / 2][2];
int index = 0;
for (int i = 0; i < groups.length; i += 2) {
array[index][0] = Double.parseDouble(groups[i]);
array[index][1] = Double.parseDouble(groups[i + 1]); index++;
}
// 或者转换为 List<List<Double>> 类型
// List<List<Double>> list = new ArrayList<>();
// for (int i = 0; i < groups.length; i += 2) {
// List<Double> sublist = new ArrayList<>();
// sublist.add(Double.parseDouble(groups[i]));
// sublist.add(Double.parseDouble(groups[i + 1]));
// list.add(sublist);
// }
// 打印数组或列表元素
for (double[] arr : array) {
for (double num : arr) {
System.out.print(num + " ");
}
System.out.println();
}
}
}
```
上述代码使用正则表达式和手动解析的方式,将字符串解析为二维数组或列表。请注意,这里假设字符串中的元素都是有效的浮点数,并且每个子数组或子列表都包含两个元素。
无论使用哪种方法,都可以将字符串 "[[2.2,3.4],[1,3],[5,6.9]]" 转换为对应的数组或列表形式。根据具体情况选择合适的方法来实现你的需求。