split()首先是一个分隔符,它会把字符串按照split(‘ 字符’)里的字符把字符串分割成数组,然后存给一个数组对象。
输出数组对象经常使用foreach或者for循环。
第一种方法
string s=abcdeabcdeabcde; string[] sArray=s.Split(‘c‘) ; foreach(string i in sArray) Console.WriteLine(i.ToString());
输出下面的结果:
ab
deab
deab
de
第二种方法
我们看到了结果是以一个指定的字符进行的分割。使用另一种构造方法对多个字
符进行分割:
string s="abcdeabcdeabcde"; string[] sArray1=s.Split(new char[3]{‘c‘,‘d‘,‘e‘}) ; foreach(string i in sArray1) Console.WriteLine(i.ToString());
可以输出下面的结果
ab
ab
ab
第三种方法
string str1=我*****是*****一*****个*****教*****师; string[] str2; str1=str1.Replace(*****,*) ; str2=str1.Split(*) ; foreach(string i in str2) Console.WriteLine(i.ToString());
输出结果:
我
是
一
个
老
师
第四种:String.Split 方法 (String[],?StringSplitOptions):
基于数组中的字符串将字符串拆分为多个子字符串。 可以指定子字符串是否包含空数组元素
- separator
- Type: System.String[]
分隔此字符串中子字符串的字符串数组、不包含分隔符的空数组或 null。
- options
- Type: System.StringSplitOptions
要省略返回的数组中的空数组元素,则为 StringSplitOptions.RemoveEmptyEntries;要包含返回的数组中的空数组元素,则为StringSplitOptions.None。
实例:
可以通过这个方法返回EXCEPTION里面 $$字符$$ 的字符:
#region 获取错误信息 /// <summary> /// 获取错误信息 /// </summary> /// <param name="msg"></param> /// <returns></returns> private string ErrMsg(string msg) { if (msg.Contains("$$")) return msg.Split(new[] { "$$" }, StringSplitOptions.None)[1]; else return msg; } #endregion
调用的时候:
catch (Exception e) { throw new GSPException(ErrMsg(e.Message), ErrorLevel.Info); }
通过ErrMsg方法处理错误信息Exception e。e在数据库SQL中写法是
if(v_count=0) then raise_application_error(-20001,‘$$该单据已经审核或执行,不允许保存$$‘); end if;
这个 raise_application_error会给 C#中返回一堆含有$$该单据已经审核或执行,不允许保存$$字符串的字符串。包括各种错误信息,例如堆栈信息。
但是前台弹出错误的时候不想要其他错误信息,只想把该单据已经审核或执行,不允许保存$$取出来作为错误信息弹出,这时候就可以对错误信息进行截取。
首先根据字符$$把错误信息给分割,成数组,最后,会分成包含三个元素的数组,第一个是$$前面的错误信息,第二个是两个$$中间的错误信息(这正是我们想要的),第三个是
第二个$$后面的错误信息。因此我们只要获取第二个,也就是 数组[1]。
msg.Split(new[] { "$$" }, StringSplitOptions.None)[1];
在EXCEPTION处理的时候,调用这个方法即可。