日期:2014-05-20  浏览次数:20679 次

字符串中有多个不同该${变量名} 字符,如何快速取出?
假设有一个字符串
"aaaaaaaaaa${var1}bbbbbbbbbbbbb${var2}vvvvvvvvvvvvvv${var3}adsfsadfsafadsfsad33333333311111111111111111111111111${var1}"

最后要取出一个数组
var1
var2
var3

假设有这样一个字符串 其中我要 ${变量名} 这种格式的变量名,并且若同一个变量出现多次,只取一次
------解决方案--------------------
是固定的以${}包含的吗?

用正则表达式去匹配。

另外获得的数组去一下重复就行了。或者放到set里
------解决方案--------------------
String s = "aaaaaaaaaa${var1}bbbbbbbbbbbbb${var2}vvvvvvvvvvvvvv${var3}adsfsadfsafadsfsad33333333311111111111111111111111111${var1}";
String pattern = "\\$\\{(\\w+)\\}";
Matcher m = Pattern.compile(pattern).matcher(s);
while(m.find()){
String temp = m.group(1);
System.out.println(temp);
}
------解决方案--------------------
楼上 的可以。
String x="aaaaaaaaaa${var1}bbbbbbbbbbbbb${var2}vvvvvvvvvvvvvv${var3}adsfsadfsafadsfsad33333333311111111111111111111111111${var1}";
Matcher m = Pattern.compile("[$][{](.*?)[}]").matcher(x);
while(m.find()){
System.out.println(m.group(1));
}