通过substring截取多个{}之内的字符串并放入list中,substringlist
分享于 点击 32454 次 点评:156
通过substring截取多个{}之内的字符串并放入list中,substringlist
一、说明
通常截取一个字符串内指定字符之间的东西,一般有两种方式: 正则表达式 和java.lang.String 中自带的substring 方法。今天先说采用 substring 的方法二、采用substring 截取多个{}之内的字符串
截取方法: /**
* 截取 { } 内的字符串到list中
* @param origin 源字符串
* @return List<String>
*/
public static List<String> subStr(String origin) {
if (origin == null) {
return null;
}
List<String> ret = new ArrayList<>();
int ch = 0, start, end;
while (ch < origin.length()) {
// 索引出现负数,说明在源字符串指定位置之后已经没有 '{' 或者 '}'
start = origin.indexOf("{", ch);
end = origin.indexOf("}", ch);
// substring 内部索引禁止出现负数
if (start == -1 || end == -1) {
break;
}
String tmp = origin.substring(start + 1, end);
//保存上一次截取时的索引
ch = end + 1;
ret.add(tmp);
}
return ret;
}
测试:String test = "//{username}/{password}/asafd{s}gh{n";
System.out.println(subStr(test));
System.out.println(subStr("{ss{}}"));
输出:[username, password, s]
[ss{]
注意:看上面的输出第二行,只截取指定索引后左边第一个 '{' 和 右边第一个 '}' 。
本例也就处理一些较为简单的字符串,复杂的字符串估计还是正则表达式方便一些
相关文章
- 暂无相关文章
用户点评