【发布时间】:2013-06-24 13:18:32
【问题描述】:
我对 Java 有点陌生。 我想知道是否有一种更简单有效的方法来实现以下字符串拆分。我已经尝试过使用模式和匹配器,但并没有真正按照我想要的方式出现。
"{1,24,5,[8,5,9],7,[0,1]}"
要拆分成:
1
24
5
[8,5,9]
7
[0,1]
这是一个完全错误的代码,但我还是发布了它:
String str = "{1,24,5,[8,5,9],7,[0,1]}";
str= str.replaceAll("\\{", "");
str= str.replaceAll("}", "");
Pattern pattern = Pattern.compile("\\[(.*?)\\]");
Matcher matcher = pattern.matcher(str);
String[] test = new String[10];
// String[] _test = new String[10];
int i = 0;
String[] split = str.split(",");
while (matcher.find()) {
test[i] = matcher.group(0);
String[] split1 = matcher.group(0).split(",");
// System.out.println(split1[i]);
for (int j = 0; j < split.length; j++) {
if(!split[j].equals(test[j])&&((!split[j].contains("\\["))||!split[j].contains("\\]"))){
System.out.println(split[j]);
}
}
i++;
}
}
对于给定的字符串格式,可以说 {a,b,[c,d,e],...} 格式。我想列出所有内容,但方括号中的内容将被表示为一个元素(如数组)。
【问题讨论】:
-
你能发布你已经尝试过的代码吗?
-
@AndrewThompson 为什么是这个标题? OP从未说过他想拆分成多维int数组,他说他只是想拆分字符串...
-
@BackSlash 嗯.. 也许我读得太多了。查看进一步的编辑。
-
你能更精确地指定格式吗?例如,如果它是“
{/}分隔的逗号分隔元素列表,每个元素要么是正整数,要么是由[/]对分隔的字符串”,那么它不会很难产生一个小的解析器,或者一个组匹配是元素的正则表达式。