1. 程式人生 > >java獲取字串中被兩個字元(串)包含的所有資料

java獲取字串中被兩個字元(串)包含的所有資料

1、程式碼

    /**      * 描述:獲取字串中被兩個字元(串)包含的所有資料      * @param str 處理字串      * @param start 起始字元(串)      * @param end 結束字元(串)      * @param isSpecial 起始和結束字元是否是特殊字元      * @return Set<String>      */     public static Set<String> getStrContainData(String str, String start, String end, boolean isSpecial){         Set<String> result = new HashSet<>();         if(isSpecial){             start = "\\" + start;             end = "\\" + end;         }         String regex = start + "(.*?)" + end;         Pattern pattern = Pattern.compile(regex);         Matcher matcher = pattern.matcher(str);         while(matcher.find()){             String key = matcher.group(1);             if(!key.contains(start) && !key.contains(end)){                 result.add(key);             }         }         return result;     }

2、測試

    public static void main(String[] args) {         String str = "1{234}567{891}2345{678}9";         Set<String> result = getStrContainData(str, "{", "}", true);         for (String key : result) {             System.out.println(key);         }     }

3、結果

891 234 678