我有一個字串“/p4products/nemis2/filehandlerU/encdv2/work/10098325”作為 CMD 的輸入。在此字串中,“encdv”是環境名稱,“2”是實體 ID。環境名稱可以是“encdv1”、“encdv2”、“encpr1”、“encpr2”等,但實體 ID 只能是“1”或“2”。每當遇到此字串時,我都想提取實體 ID。
我想使用 indexOf 然后最后 charAt 來獲取值,這作業正常。但是有沒有比這更方便的方法,因為如果將來更改字串,這種方法似乎有缺陷。
我的代碼片段:
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));
}
uj5u.com熱心網友回復:
我們可以使用String#replaceAll單線解決方案:
String input = "/p4products/nemis2/filehandlerU/encdv2/work/10098325";
String envNum = input.replaceAll(".*/enc(?:dv|pr)(\\d )/.*", "$1");
System.out.println(envNum); // 2
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/491100.html
