如何高效地提取字符串中的实例值



我有一个字符串"/p4products/nemis2/filehandlerU/encdv2/work/10098325"这是来自CMD的输入。在这个字符串中,"encdv"是环境名和"2"为实例ID。环境名可以是"encdv1","encdv2","encpr1","encpr2"但是实例ID可以是"1"或"2";只有。当我遇到这个字符串时,我想提取实例ID。

我想使用indexOf,然后最后charAt来获取值,这是正常工作的。但是有没有比这更方便的方法,因为如果字符串将来被更改,这种方法似乎有缺陷。

My Code Snippet:

public static void main(String[] args) {
String s = "/p4products/nemis2/filehandlerU/encdv2/work/10098325";
int instId = s.indexOf("enc");
int instIdVerify = s.indexOf("/work");
if (instId  + 5 == instIdVerify -1)
System.out.println(s.charAt(instId + 5));
}

我们可以使用String#replaceAll作为一个单行的解决方案:

String input =  "/p4products/nemis2/filehandlerU/encdv2/work/10098325";
String envNum = input.replaceAll(".*/enc(?:dv|pr)(\d+)/.*", "$1");
System.out.println(envNum);  // 2

相关内容

  • 没有找到相关文章

最新更新