程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> 字符串分段填充

字符串分段填充

編輯:C#入門知識

1、方法功能描述  
  有一個字符串:A-B-C-D-E-F-G-H-I-J,子字符串為:A-D、G-H,
  實現功能:找到字符串 D-G、H-J。
2、代碼說明及描述
  (1)思想
    循環字符串,逐個與子字符串的第一個字符進行比對,
    如果子字符串列表中不存在,則添加子字符串,並且把子字符串的第一個字符設為該字符串;
    如果子字符串中存在該字符,則取得子字符串的最後一個字符,並且循環跳過該段。
  (2)C#代碼
 1        private List<List<string>> FillMidList(List<string> stringList, List<List<string>> midList)
 2         {
 3             List<List<string>> rtn = new List<List<string>>();
 4             List<string> strList = null;//Char List
 5             string start = string.Empty;//Start Char
 6             string end = string.Empty;//End Char
 7             bool isFind = false;
 8             bool isFindEnd = false;//Find End Char
 9
10             for (int i = 0; i < stringList.Count; i++)
11             {
12                 start = stringList[i];
13                 //If exit char
14                 foreach (var item in midList)
15                 {
16                     if (start == item[0])
17                     {
18                         if (isFindEnd == true)
19                         {
20                             end = start;
21                         }
22                         isFind = true;
23                         start = item[item.Count - 1];
24                         break;
25                     }
26                 }
27
28                 if (isFind == true)
29                 {
30                     isFind = false;
31                     //Adjust index
32                     for (int j = 0; j < stringList.Count; j++)
33                     {
34                         if (stringList[j] == start)
35                         {
36                             i = j - 1;
37                             break;
38                         }
39                     }
40                     if (isFindEnd == true)
41                     {
42                         strList.Add(end);
43                         rtn.Add(strList);
44                         isFindEnd = false;
45                         end = string.Empty;
46                     }
47                 }
48                 else
49                 {
50                     if (isFindEnd == true)
51                     {
52                         //Add the last
53                         if (start == stringList[stringList.Count - 1])
54                         {
55                             strList.Add(start);
56                             rtn.Add(strList);
57                         }
58                     }
59                     else
60                     {
61                         strList = new List<string>();
62                         strList.Add(start);
63                         isFindEnd = true;
64                     }
65                 }
66             }
67
68             return rtn;
69         }
3、說明
  這個功能在做項目的過程中有時會遇到,個人感覺寫的有點繁瑣,提供拙見供大家探討。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved