String a={{1,2},{2,3}}如何转换成int[][]类型,尽可能给出多种具体代码示例
时间: 2024-09-15 21:05:59 浏览: 31
浅谈Java中强制类型转换的问题
将字符串 `a={{1,2},{2,3}}` 转换成整数二维数组 (`int[][]`) 可能需要先解析字符串,然后创建相应的数组。这里提供几种方法:
1. 使用Java 8的流(Stream)和正则表达式:
```java
String str = "{{1,2},{2,3}}";
List<String> parts = Arrays.stream(str.split("\\{\\}|\\}"))
.map(String::trim)
.collect(Collectors.toList());
List<int[]> rows = parts.stream()
.map(row -> row.split(",").stream()
.mapToInt(Integer::parseInt)
.toArray())
.collect(Collectors.toList());
int[][] intArray = rows.toArray(new int[rows.size()][]);
```
2. 直接使用循环和split()方法:
```java
String str = "{{1,2},{2,3}}";
String[] parts = str.substring(1, str.length() - 1).split(",");
int[][] intArray = new int[parts.length][];
for (int i = 0; i < parts.length; i++) {
String[] rowParts = parts[i].split(",");
intArray[i] = new int[rowParts.length];
for (int j = 0; j < rowParts.length; j++) {
intArray[i][j] = Integer.parseInt(rowParts[j]);
}
}
```
3. 如果输入保证是正确的JSON格式,可以借助第三方库如Jackson或Gson:
```java
import com.fasterxml.jackson.databind.ObjectMapper;
ObjectMapper mapper = new ObjectMapper();
int[][] intArray = mapper.readValue(str, int[][].class);
```
注意,最后的转换依赖于字符串的确切结构和是否符合特定的数据格式规范。
阅读全文