我遇到以下问题,希望有人能告诉我我是否正在使用最糟糕的机制来实现我想要做的事情:
这是我需要解析的字符串:
(s(j1) | f(j2) | d(f3) | t(f4) | e(f5) = 5) & v(g) = "0"
我需要能够将 j1、j2、f3、f4、f5 和 g 以及括号内的其他任何内容作为单独的元素获取
这就是我正在做的事情,但它没有按照我想要的方式工作......
String parsedString="";
String delimiter = "[()s(f(d(t(n(v(&|]+");
String[] tokens = parseString.split(delimiterString);
List<String> listOfValues = new ArrayList<String>(Arrays.asList(tokens));
for (int i=0;i<listOfValues.size();i++)
{
System.out.println("Value of "+i+"is "+listOfValues.get(i));
if(listOfValues.get(i).equals("\r") || listOfValues.get(i).equals("")|| listOfValues.get(i).equals(" "))
{
listOfValues.remove(i);
}
}
我也在尝试删除空格和回车符,但如果有更好的方法来做到这一点(显然我的方法不起作用),请告诉我。
最佳答案
这应该有帮助:
String input = "(s(j1) | f(j2) | d(f3) | t(f4) | e(f5) = 5) & v(g) = \"0\"";
String regex = "\\(([^(]+?)\\)";
Matcher matcher = Pattern.compile(regex).matcher(input);
while (matcher.find()) {
System.out.println(matcher.group(1));
}
关于java - 字符串解析机制获取值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15112306/