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