使用Java从字符串中提取令牌
我正在编写一个Java程序,从如下字符串中提取令牌:使用Java从字符串中提取令牌,java,string,Java,String,我正在编写一个Java程序,从如下字符串中提取令牌: “我的名字是${lastName},${firstName}。” 我的预期输出将是一个数组 我的名字是,${lastName},,,${firstName}, 为此,我编写了一个静态方法: static List<String> tokenize(String str) { List<String> results = new ArrayList<String>(); int idx =
“我的名字是${lastName},${firstName}。”
我的预期输出将是一个数组
我的名字是
,${lastName}
,,
,${firstName}
,
为此,我编写了一个静态方法:
static List<String> tokenize(String str) {
List<String> results = new ArrayList<String>();
int idx = -1;
int beginIndex = 0;
while ((idx = str.indexOf("${")) > -1) {
results.add(str.substring(beginIndex, idx));
str = str.substring(idx + 2);
idx = str.indexOf("}");
if (idx > 0) {
results.add("${" + str.substring(0, idx) + "}");
str = str.substring(idx + 1);
}
}
results.add(str);
return results;
}
静态列表标记化(字符串str){
列表结果=新建ArrayList();
intidx=-1;
int beginIndex=0;
而((idx=str.indexOf(“${”)>-1){
结果:添加(str.substring(beginIndex,idx));
str=str.substring(idx+2);
idx=str.indexOf(“}”);
如果(idx>0){
结果.添加(“${”+str.substring(0,idx)+”}”);
str=str.substring(idx+1);
}
}
结果:添加(str);
返回结果;
}
但是,我想知道是否有任何开源库可以实现相同的结果。您可以使用正则表达式进行拆分
String[] data = input.split("(?=\\$)")
它将以这种格式(数组)返回您的数据
将其转换为列表
List<String> list = Arrays.asList(array);
List List=Arrays.asList(array);
您可以使用正则表达式进行拆分
String[] data = input.split("(?=\\$)")
它将以这种格式(数组)返回您的数据
将其转换为列表
List<String> list = Arrays.asList(array);
List List=Arrays.asList(array);
我建议使用,因为它允许您使用正则表达式拆分字符串,这将非常简单。我建议使用,因为它允许您使用正则表达式拆分字符串,这将非常简单