为了账号安全,请及时绑定邮箱和手机立即绑定

实现字符串分割

实现字符串分割

郎朗坤 2018-07-20 05:15:54
要求不使用String的split函数完成分割字符串功能已给出方法:  String[] splitString(String str,char sep)
查看完整描述

2 回答

?
墨色风雨

TA贡献1853条经验 获得超6个赞

1 public static string[] splitString(string str, char sep)
2 {
3     List<int> indexList = new List<int>();
4     indexList.Add(0);
5     for (int i = 0; i < str.Length; i++)
6     {
7         if (str[i] == sep)
8         {
9             indexList.Add(i);
10         }
11     }
12     indexList.Add(str.Length - 1);
13     string[] ss = new string[indexList.Count - 1];
14     for (int i = 0; i < ss.Length; i++)
15     {
16         if (indexList[i] == indexList[i + 1])
17         {
18             ss[i] = string.Empty;
19         }
20         else
21         {
22             ss[i] = str.Substring(indexList[i] + 1, indexList[i + 1] - indexList[i] - 1);
23         }
24     }
25     return ss;
26 }

主要原理就是先把对应字符的索引位置找出来,再根据索引位置提取字符串

还有一种方法,可以直接在第一个循环中通过对比一个个字符,不相符就追加,相符就切割,但这样涉及大量连接字符串的操作


查看完整回答
反对 回复 2018-07-23
?
料青山看我应如是

TA贡献1772条经验 获得超8个赞

String[] splitString(String str,char sep){

  ArrayList<String> l =new ArrayList<String>();

  int n;

  while((n=str.indexOf(sep))>=0){

    String pStr=null;

    pStr=str.substring(0,n);

    if(pStr!=null && !pStr.equals(""))

      l.add(pStr);

    str=str.substring(n+1,str.length());

  }

  if(str!=null && !str.equals(""))

     l.add(str);

  String s[] = new String[l.size()];

  l.toArray(s);

  return s;

}


查看完整回答
反对 回复 2018-07-23
  • 2 回答
  • 0 关注
  • 325 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号