作者热门文章
- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我正在尝试找出如何将字符串分成组。我不认为 split(regex)
方法本身就足够了。
我有 String complexStatement = "(this && that)||(these&&those)||(me&&you)";
我想要一个具有这种形式的数组:
"(this && that)","(these&&those)","(me&&you)""
如果我有 "(5+3)*(2+5)+(9)"
那么我想有 "(5+3)","(2+5 )","(9)".
(如果您能以某种方式保留加入信息,例如*,+,||
,则加分)
对于任意字符串输入这可能吗?我正在玩 StringTokenizer,但我还没有完全掌握它。
最佳答案
您可以使用下面的代码:
String str = "(this && that)\",\"(these&&those)\",\"(me&&you)";
Pattern pattern = Pattern.compile("\\(([^\\)]+)\\)");
Matcher m = pattern.matcher(str);
while (m.find()){
System.out.println(m.group(0));
}
\\(([^\\)]+)\\)
会挖掘括号内的任何内容,看起来像你想要的!
编辑:
要捕获 )
和 (
之间的内容,只需将正则表达式替换为 \\)([^\\(]+)\\(
这个!
关于java - 如何将字符串拆分成组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17383195/
我是一名优秀的程序员,十分优秀!