亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

實現字符串分割

實現字符串分割

郎朗坤 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 關注
  • 304 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號