1 #region String 扩展
2 /// 去掉字符串的最后一个逗号
3 /// <summary>
4 /// 去掉字符串的最后一个逗号
5 /// </summary>
6 /// <param name="s">调用该方法的当前实例</param>
7 /// <returns>如果该字符串是以“,”结尾,那么将去掉该“,”,然后返回剩余的字符串;否则返回原字符串。</returns>
8 /// by:TYH
9 public static string RemoveLastComma(this string s)
10 {
11 if (s == null)
12 return null;
13
14 //return s.EndsWith(",") ? s.Remove(s.Length - 1, 1) : s;
15 return s.TrimEnd(',');
16
17 }
18 /// 将逗号隔开的字符串转换成对应的list int
19 /// <summary>
20 /// 将逗号隔开的字符串转换成对应的list int
21 /// </summary>
22 /// <param name="str"></param>
23 /// <returns></returns>
24 /// by:TYH
25 public static List<int> GetIntList(this string str)
26 {
27 List<int> int_list = new List<int>();
28 if (str != null)
29 {
30 string[] tmp = str.Split(',');
31 List<string> tmp2 = tmp.ToList();
32 Func<string, int> toInt = s => { int i; int.TryParse(s, out i); return i; };
33 int_list.AddRange(tmp2.ConvertAll(new Converter<string, int>(toInt)));
34 }
35 return int_list;
36 }
37 /// 将逗号隔开的字符串转换成对应的list string
38 /// <summary>
39 /// 将逗号隔开的字符串转换成对应的list string
40 /// </summary>
41 /// <param name="str"></param>
42 /// <returns></returns>
43 /// by:TYH
44 public static List<string> GetStringList(this string str)
45 {
46 List<string> string_list = new List<string>();
47 if (str != null)
48 {
49 string[] tmp = str.Split(',');
50 string_list.AddRange(tmp.ToList());
51 }
52 return string_list;
53 }
54 /// 在字符串最后面加上半角“,”
55 /// <summary>
56 /// 在字符串最后面加上半角“,”
57 /// </summary>
58 /// <param name="s"></param>
59 /// <returns></returns>
60 /// by:TYH
61 public static string AppendLastComma(this string s)
62 {
63 if (s != null)
64 return !s.EndsWith(",") ? s + "," : s;
65 else return s;
66 }
67 /// 假如字符串超过指定的长度,那么留取指定的长度并加上省略号,然后返回这样处理后的字符串
68 /// <summary>
69 /// 假如字符串超过指定的长度,那么留取指定的长度并加上省略号,然后返回这样处理后的字符串
70 /// 否则返回原字符串
71 /// </summary>
72 /// <param name="s"></param>
73 /// <param name="i">指定留取的长度</param>
74 /// <returns></returns>
75 /// by:TYH
76 public static string SubStringThenAppendEllipsis(this string s, int i)
77 {
78 if (s.Length > i)
79 return s.Substring(0, i) + "…";
80 else
81 return s;
82 }
83 /// 如果字符串实例为null或者空字符串,则返回“(无)”,括号为半角;否则返回原字符串
84 /// <summary>
85 /// 如果字符串实例为null或者空字符串,则返回“(无)”,括号为半角;否则返回原字符串
86 /// </summary>
87 /// <param name="s"></param>
88 /// <returns></returns>
89 /// by:TYH
90 public static string AppendWUIfNothing(this string s)
91 {
92 if (s == null || s == "")
93 return "(无)";
94 else return s;
95 }
96 /// 文件名不能含这9个字符 / \ : " * ? 大于 小于 |
97 /// <summary>
98 /// 移除文件名的不合法字符
99 /// 文件名不能含这9个字符 / \ : " * ? 大于 小于 |
100 /// </summary>
101 /// <param name="s"></param>
102 /// <returns></returns>
103 /// by:TYH
104 public static string ChechValidOfFileName(this String s)
105 {
106 if (s == null)
107 return null;
108
109 if (s.Contains("/"))
110 s = s.Replace("/", "_");
111 if (s.Contains("\\"))
112 s = s.Replace("\\", "_");
113
114 if (s.Contains(":"))
115 s = s.Replace(":", "_");
116 if (s.Contains("\""))
117 s = s.Replace("\"", "_");
118
119 if (s.Contains("*"))
120 s = s.Replace("*", "_");
121 if (s.Contains("?"))
122 s = s.Replace("?", "_");
123
124 if (s.Contains("<"))
125 s = s.Replace("<", "_");
126 if (s.Contains(">"))
127 s = s.Replace(">", "_");
128
129 if (s.Contains("|"))
130 s = s.Replace("|", "_");
131 return s;
132 }
133 /// 路径名不能含这4个字符 " 大于 小于 |
134 /// 可以含这5个字符 : / \ : * ?
135 /// <summary>
136 /// 移除路径名的不合法字符
137 /// 路径名不能含这4个字符 " 大于 小于 |
138 /// </summary>
139 /// <param name="s"></param>
140 /// <returns></returns>
141 /// by:TYH
142 public static string ChechValidOfPathName(this String s)
143 {
144 if (s == null)
145 return null;
146
147 if (s.Contains("\""))
148 s = s.Replace("\"", "_");
149
150
151 if (s.Contains("<"))
152 s = s.Replace("<", "_");
153
154 if (s.Contains(">"))
155 s = s.Replace(">", "_");
156
157 if (s.Contains("|"))
158 s = s.Replace("|", "_");
159 return s;
160 }
161 /// 给字符串后附件无特殊字符的GIUD,用于文件名,以免文件已经存在
162 /// <summary>
163 /// 给字符串后附件无特殊字符的GIUD,用于文件名,以免文件已经存在
164 /// </summary>
165 /// <param name="s"></param>
166 /// <returns></returns>
167 public static string AppendGUIDWithoutSpecialChar(this String s)
168 {
169 return s + Guid.NewGuid().ToString("N");
170 }
171 /// 将Ascii码十进制所代表的字符替换成指定的字符
172 /// <summary>
173 /// 将ASCII码十进制所代表的字符替换成指定的字符
174 /// </summary>
175 /// <param name="oldStr"></param>
176 /// <param name="oldChar"></param>
177 /// <param name="newChar"></param>
178 /// <returns></returns>
179 public static string Replace(this string oldStr, byte oldChar, char newChar)
180 {
181 char ch = (char)oldChar;
182 return oldStr.Replace(ch, newChar);
183 }
184 /// 将Ascii码十进制所代表的字符替换成指定的字符
185 /// <summary>
186 /// 将ASCII码十进制所代表的字符替换成指定的字符
187 /// </summary>
188 /// <param name="oldStr"></param>
189 /// <param name="oldChar"></param>
190 /// <param name="newChar"></param>
191 /// <returns></returns>
192 public static string Replace(this string oldStr, byte oldChar, String newStr)
193 {
194 char ch = (char)oldChar;
195 return oldStr.Replace(ch.ToString(), newStr);
196 }
197 /// 获取纯文件名:
198 /// <summary>
199 /// 获取纯文件名:
200 /// 会检查路径的合法性
201 /// 会检查重复的扩展名
202 /// </summary>
203 /// <param name="filename"></param>
204 /// <returns></returns>
205 public static string GetFilename(this string filename)
206 {
207 if (filename == null)
208 return null;
209
210 filename = System.IO.Path.GetFileName(filename.ChechValidOfPathName());
211
212 //只考虑有两个扩展名的情况
213 string FileNameWithoutExtension = Path.GetFileNameWithoutExtension(filename);
214
215 string FileNameWithoutExtension2 = Path.GetFileNameWithoutExtension(FileNameWithoutExtension);
216
217
218 if (FileNameWithoutExtension == FileNameWithoutExtension2)
219 return filename;
220 else return FileNameWithoutExtension;
221
222 }
223 /// 判断字段是否由 null 、 空 或 仅空白字符串组成
224 /// <summary>
225 /// 判断字段是否由 null 、 空 或 仅空白字符串组成
226 /// </summary>
227 /// <param name="str"></param>
228 /// <returns></returns>
229 public static bool IsNullOrWhiteSpace(this string str)
230 {
231 return string.IsNullOrWhiteSpace(str);
232 }
233 /// 判断字符串是否 由 Null 或 空 字符串 组成
234 /// <summary>
235 /// 判断字符串是否 由 Null 或 空 字符串 组成
236 /// </summary>
237 /// <param name="str"></param>
238 /// <returns></returns>
239 public static bool IsNullOrEmpty(this string str)
240 {
241 return string.IsNullOrEmpty(str);
242 }
243 #endregion