好吧。。我承认我当时准备不够充分。。所以咯。在这里记录下来吧。。。
首先我们看一下Java提供Split函数是怎么用的,
Here is the syntax of this method:
public String[] split(String regex, int limit) or public String[] split(String regex)
Parameters:
Here is the detail of parameters:
-
regex — the delimiting regular expression.
-
limit — the result threshold which means how many strings to be returned.
Return Value:
-
It returns the array of strings computed by splitting this string around matches of the given regular expression.
如果说,regex只是单一的符号当然容易解决了,那么考虑一下,这个符号不是单一的呢,而是char[]呢。
我们从字符匹配中借鉴思想来完成。
我们有两个字符串。
用BF的方式匹配,如果完全匹配成功则清空StringBuffer并将其放进一个ArrayList里面,否则一直匹配。
代码如下
public static String[] split(String str, String tag) { char[] strs = str.toCharArray(); char[] tags = tag.toCharArray(); ListreturnList = new ArrayList (); StringBuffer buff = new StringBuffer(); int i, j = 0; for (i = 0; i < strs.length - 1; ) { while (j < tags.length && i < strs.length) { if (strs[i] != tags[j]) j = 0; if (strs[i] == tags[j]) j++; buff.append(strs[i]); i++; } returnList.add(buff.substring(0, buff.length() - j)); buff = new StringBuffer(); j = 0; } String[] tm = {}; return returnList.toArray(tm); }