在Java中,当你需要将一个字符串按照特定模式转换为二维数组时,可以使用正则表达式和Matcher类。下面是一个示例,展示了如何实现这一过程:
首先,定义一个正则表达式Pattern,用于匹配形如"{数字,数字,...}"的子串:
Pattern p = Pattern.compile("\\{(\\d|\\d,)+\\}");
接着,我们有一个字符串s,其内容为"{{1,2,3},{4,5,6},{7,8,9},{0},{0}}":
String s = "{{1,2,3},{4,5,6},{7,8,9},{0},{0}}";
通过Matcher对象m进行逐行匹配:
Matcher m = p.matcher(s);
初始化一个二维数组data:
int[][] data = new int[0][];
使用while循环遍历匹配到的子串:
while (m.find()) {
将数组data扩展,以容纳新的子数组:
data = Arrays.copyOf(data, data.length + 1);
解析每个子串得到一个整数数组:
String str = m.group();
Pattern p1 = Pattern.compile("\\d");
Matcher m1 = p1.matcher(str);
int[] sub = new int[0];
再次使用while循环解析每个数字:
while (m1.find()) {
sub = Arrays.copyOf(sub, sub.length + 1);
将匹配到的数字转换为整数并添加到子数组:
sub[sub.length - 1] = Integer.parseInt(m1.group());
}
将解析后的子数组添加到data:
data[data.length - 1] = sub;
}
这样,我们就完成了从字符串到二维数组的转换:
这段代码展示了如何通过正则表达式和Matcher将给定的字符串s分解成一个二维整数数组。
温馨提示:答案为网友推荐,仅供参考