共享一个 String 的 Split 函数(跟者有分)

cangwu_lee 2005-02-28 11:30:09
//有主要的注释,看起来应该不难理解,: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;
}
...全文
229 13 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
wolftail 2005-03-11
  • 打赏
  • 举报
回复

不应该这样拷贝数组吧
在java中拷贝数组要使用System.arraycopy();
shangwei80 2005-02-28
  • 打赏
  • 举报
回复
好,好,好!
飞行的兔子 2005-02-28
  • 打赏
  • 举报
回复
好,楼主真是有心人.
zanjun 2005-02-28
  • 打赏
  • 举报
回复
wonderful!
up!
zrtl 2005-02-28
  • 打赏
  • 举报
回复
qiang, up
jFresH_MaN 2005-02-28
  • 打赏
  • 举报
回复
恩,不错
其实在手机上就是要这样自己来写,少用库方法,效率会高一点
cuilichen 2005-02-28
  • 打赏
  • 举报
回复
Up
goodnow 2005-02-28
  • 打赏
  • 举报
回复
谢谢楼主,跟。分。
xianxingzhe 2005-02-28
  • 打赏
  • 举报
回复
up
网络咖啡 2005-02-28
  • 打赏
  • 举报
回复
支持一下,我的BLOG里面也有一个,用Vector实现的.
http://blog.csdn.net/mailbomb
wadsunglow 2005-02-28
  • 打赏
  • 举报
回复
up
wadsunglow 2005-02-28
  • 打赏
  • 举报
回复
up
sy5591 2005-02-28
  • 打赏
  • 举报
回复
up
thanks

13,097

社区成员

发帖
与我相关
我的任务
社区描述
Java J2ME
社区管理员
  • J2ME社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧