共享一个 String 的 Split 函数(跟者有分)
//有主要的注释,看起来应该不难理解,:P
//写得不好,请多多指教
//这种方法也许效率不是最高的(动态数组的问题),但应该是够短小的、够方便的——
//适合 MIDP
//
//cangwu@263.net
public static String[] Split(String Source, String Delimiter) {
int iCount, iPos, iLength;
boolean bEnd; //判断结束的符号是不是分割符号
String sTemp; //
String[] aSplit = null, t = null; //aSplit结果返回 t临时的
sTemp = Source;
iCount = 0;
iLength = Delimiter.length();
bEnd=sTemp.endsWith(Delimiter);
for (; ; ) {
iPos = sTemp.indexOf(Delimiter);
if (iPos < 0) //直到没有分割的字符串,就退出
break;
else {
if (iCount > 0) t = aSplit; //第一次,不用拷贝数组
iCount++;
aSplit = new String[iCount]; //新的数组,
if (iCount > 1) { //不是第一次,拷贝数组
for (int i = 0; i < t.length; i++) aSplit[i] = t[i];
}
aSplit[iCount - 1] = sTemp.substring(0, iPos);
sTemp = sTemp.substring(iPos + iLength); // 取余下的字符串
}
}
if( (sTemp.length() >= 0) || bEnd) { // 判断最后剩余的 String,如果最后的字符是分割符号
if (iCount > 0) t = aSplit;
iCount++;
aSplit = new String[iCount];
if (iCount > 1) {
for (int i = 0; i < t.length; i++) aSplit[i] = t[i];
}
aSplit[iCount - 1] = sTemp;
}
return aSplit;
}