格式转化问题
这种类型的字符串怎么解析
{1|0|1|2;2|0|1|2;3|0|0|2;4|0|1|2}
回答:
- 去括号
- 按分号换行(避免多句写在一行的情况)
- 去掉空行(或只含空格的行)
- 每行按
|
拆分 (split) - 拆分结果去两端空格(也许可以不用去掉)
- 拆分结果转换成数字(比如
Integer.parseInt()
)
基本上可以形成一个 List<List<Integer>>
结构,或者 int[][]
结构,或者 List<int[]>
……
环境:Java 17
package playground.sf.q1010000042089691;import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
public class Main {
public static void main(String[] args) {
String text = "{1|0|1|2;2|0|1|2;3|0|0|2;4|0|1|2}";
var result = parse(text);
System.out.println(result);
result.forEach(arr -> System.out.println(Arrays.toString(arr)));
}
static List<int[]> parse(String text) {
int startIndex = text.indexOf('{') + 1;
int endIndex = text.lastIndexOf('}');
return Arrays.stream(text.substring(startIndex, endIndex).split(";"))
.map(
s -> Arrays.stream(s.split("\\|"))
.mapToInt(Integer::parseInt)
.toArray()
)
.collect(Collectors.toList());
}
}
回答:
最简单的方案是使用String.split
方法分割那几个关键的字符(|
;
),就可以拆分成一个个数组了
以上是 格式转化问题 的全部内容, 来源链接: utcz.com/p/944560.html