格式转化问题


这种类型的字符串怎么解析
{1|0|1|2;2|0|1|2;3|0|0|2;4|0|1|2}


回答:

  1. 去括号
  2. 按分号换行(避免多句写在一行的情况)
  3. 去掉空行(或只含空格的行)
  4. 每行按 | 拆分 (split)
  5. 拆分结果去两端空格(也许可以不用去掉)
  6. 拆分结果转换成数字(比如 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

回到顶部