给出一个字符串: 如何从一行中的字符串打印出括号中的所有值?
String str = "java programming (for)all (beginners) is (very) interesting";
String values= StringUtils.substringBetween(str,"(",")");
System.out.print(values);
我需要的是:非常适合初学者 但我只得到一个值:
答案 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
函数。