我知道有很多关于 Java 解析的问题。但是我无法弄清楚如何准确解析以下字符串 -
输入字符串为 -
[[0, 0] -> 0, [0, 1] -> 1, [0, 2] -> 2, [1, 0] -> 3, [0, 4] -> 1, [0, 1] -> 2, [0, 6] -> 3, else -> 2
我希望将输出解析为 -
Entry 1 : number1, number2, number3
Entry 2 : number4, number5, number6
...
所以对于这个例子,输出将是 -
Entry 1 : 0, 0, 0
Entry 2 : 0, 1, 1
....
确切地说,else -> 2
应该忽略该部分。
现在我的问题是——
- 一个条目包含与模式不同的内容
- 方括号之间的数字数量可能会有所不同。例如,输入字符串可以是 -
[[0] -> 0, [1] -> 1, [2] -> 2, else -> 2
我尝试的是在我展示的第二个示例中使用 split -
String value = "[[0] -> 0, [1] -> 1, [2] -> 2, else -> 2";
value = value.replaceAll("\\[", "");
value = value.replaceAll("\\]", "");
String split[] = value.split(",");
for(int j=0;j<split.length;j++)
{
String split2[] = split[j].split("->");
split2[0] = split2[0].replaceAll("\\s","");
if(split2[0].contains("else"))
continue;
System.out.println(split2[0],+ " " + split split2[1].replaceAll("\\s",""));
}
但这不适用于方括号中可变数量的数字。我应该如何进行模式匹配?我可以使用正则表达式吗?
谢谢 !