从Java字符串中获取数据

时间:2015-09-22 11:32:39

标签: java arrays string

我有一个以下类型的字符串:

{{a}{b}{c}{d}{e}{f}{g}{h}}

其中a到h可以是任何字符串(不包含{{)。

在[{1}} ab获得chArray,... Java的最有效方法是什么? }?

扫描每个角色对我来说似乎不是一个好方法。

2 个答案:

答案 0 :(得分:1)

试试这个

String originStr = "{{a}{b}{c}{d}{e}{f}{g}{h}}";
String tmpStr = originStr.replace("{{", "").replace("}}", "");
String[] resultArray = tmpStr.split("\\}\\{");

答案 1 :(得分:1)

另一种选择是使用正则表达式,如:

String text = "{{a}{b}{c}{d}{e}{f}{g}{h}}";

Pattern pattern = Pattern.compile("(?<=\\{)([^{}]*)(?=\\})");
Matcher matcher = pattern.matcher(text);

String[] result = new String[8];
for(int i = 0; i < result.length && matcher.find(); i++) {
    result[i] = matcher.group(1);
}
System.out.println(Arrays.toString(result));

输出结果为:

[a, b, c, d, e, f, g, h]

重要的是要注意,此解决方案,至少以其当前形式,最多只能找到8个字符串。如果您需要更加动态的解决方案,请参阅Jordi Castilla的答案。