[英]Java Get String Between Two Strings
想問這種模式如何得到“200”值? 我需要最簡單最簡單的方法,而無需添加額外的依賴庫。 我不想要 substring(11, s.length() - 1) 方法。
~PHONE_IDX=200~PHONE_DD=100~PHONE_KK=50~
您可以使用正則表達式來完成此操作,方法是搜索 ~PHONE_characters=digits 模式,如下所示:
String str = "~PHONE_IDX=200~PHONE_DD=100~PHONE_KK=50~";
Pattern p = Pattern.compile("~PHONE_(?<attribute>\\w+)=(?<value>\\d+)");
Matcher m = p.matcher(str);//matcher for string
while(m.find())
{
System.out.println("Next group: "+m.group());
System.out.println("Attribute: "+m.group("attribute"));
System.out.println("Value: "+m.group("value"));
}
此代碼將 output 如下:
Next group: ~PHONE_IDX=200
Attribute: IDX
Value: 200
Next group: ~PHONE_DD=100
Attribute: DD
Value: 100
Next group: ~PHONE_KK=50
Attribute: KK
Value: 50
使用標准的 Java 庫,有一個 package java.util.regex
可能有一個可行的解決方案。
Pattern p = Pattern.compile("~PHONE_IDX=([0-9]*)", int flags);
Matcher matches = p.matcher(input);
boolean isMatches = m.matches();
括號會將您要查找的結果放入可以輕松訪問的組中,而無需 substring 或再次遍歷字符串。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.