Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/394.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Java从字符串中提取令牌_Java_String - Fatal编程技术网

使用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 =

我正在编写一个Java程序,从如下字符串中提取令牌:
“我的名字是${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);
我建议使用,因为它允许您使用正则表达式拆分
字符串,这将非常简单。我建议使用,因为它允许您使用正则表达式拆分
字符串,这将非常简单