Java字符串复制
1 public boolean topicFilterMatch(String topicFilter, String topic) {
2 if (topicFilter == null || topic == null) {
3 return false;
4 }
5
6 if (topicFilter.startsWith("$queue/"))
7 topicFilter = topicFilter.substring(7);
8 if (topicFilter.startsWith("$share/")) {
9 int index = topicFilter.indexOf("/", 7);
10 topicFilter = topicFilter.substring(index + 1);
11 }
12
13 String[] filterTokens = topicFilter.split("/");
14 String[] topicTokens = topic.split("/");
15 if (filterTokens.length > topicTokens.length) {
16 return false;
17 }
18
19 for (int i = 0; i < filterTokens.length; i++) {
20 if (filterTokens[i].equals("#")) {
21 // '#' must be the last character
22 return ((i + 1) == filterTokens.length);
23 }
24
25 if (!(filterTokens[i].equals(topicTokens[i]) || filterTokens[i].equals("+"))) {
26 return false;
27 }
28 }
29
30 return (filterTokens.length == topicTokens.length);
31 }