首页 > 解决方案 > 获取未知长度的分隔字符串的子字符串值

问题描述

给定字符串数据,用:逗号分隔

String times =  6:10000:first,12:12000:second,18:15000:third

在上述情况下,我需要从最后一个逗号分隔列表中获取第三个值15000

或者20000在下面的情况下

String times =  6:10000:first,12:12000:second,18:15000:third,24:20000:fourth

或者30000在下面的情况下

String times =  
         6:10000:first,12:12000:second,18:15000:third,24:20000:fourth,30:30000:fourth

就像是:

public String getLastTimeFromCommaSeparatedList() {
    return times.substring(mileages.lastIndexOf(':') + 2);
}

鉴于逗号分隔列表的长度未知,我不清楚如何获得所需的值。

标签: javasubstring

解决方案


您可以将 substring 与 lastIndexOf 一起使用并像这样拆分:

times.substring(time.lastIndexOf(",")).split(":")[1]

演示

String[] times = {"6:10000:first,12:12000:second,18:15000:third",
        "6:10000:first,12:12000:second,18:15000:third,24:20000:fourth",
        "6:10000:first,12:12000:second,18:15000:third,24:20000:fourth,30:30000:fourth"
};
for (String time : times) {
    System.out.println(
            time.substring(time.lastIndexOf(",")).split(":")[1]
    );
}

输出

15000
20000
30000

推荐阅读