簡體   English   中英

Java 獲取兩個字符串之間的字符串

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM