我有一个以下类型的字符串:
{{a}{b}{c}{d}{e}{f}{g}{h}}
其中a到h可以是任何字符串(不包含{
和{
)。
在[{1}} a
中b
获得c
,h
,Array
,... Java
的最有效方法是什么? }?
扫描每个角色对我来说似乎不是一个好方法。
答案 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的答案。