从字符串中获取括号括起来的多个值

时间:2018-03-19 11:59:17

标签: java

给出一个字符串: 如何从一行中的字符串打印出括号中的所有值?

String str = "java programming (for)all (beginners) is (very) interesting"; 
String values= StringUtils.substringBetween(str,"(",")");
System.out.print(values);

我需要的是:非常适合初学者 但我只得到一个值:

2 个答案:

答案 0 :(得分:1)

通过阅读文档here,我会说你使用了错误的功能。

String[] values= StringUtils.substringsBetween(str,"(",")");

答案 1 :(得分:0)

阅读substringBetween it says it

  

获取嵌套在同一String的两个实例之间的String。

我读到它,因为它只做了一次。即一旦它找到括号之间的第一个字符串,它就会“完成”并返回它,而不会继续。注意它是如何回归的:

String values ....

String,而不是字符串数组String[]

有两种方法可以解决问题。首先,你可以在下一个字符串上做substringBetween,并重复直到你用完为止。或者你可以完全以不同的方式做到这一点。鉴于substringBetween没有给你任何位置信息(即它在字符12处找到子字符串等),重复操作并不是很容易,所以我建议你使用不同的方法(也许从String.split("(")开始?)

或者如Till所说,使用substringsBetween返回所有字符串的数组。如果这是一个家庭作业,感觉它有点作弊!值得给自己一个for循环或尝试编写自己的substringsBetween函数。