java字符串转数组

如题所述

在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分解成一个二维整数数组。
温馨提示:答案为网友推荐,仅供参考
相似回答
大家正在搜