在处理String对象时,有时候需要去除一些额外的字符,如:空格等
主要的方法:
string.Trim() 常用 无参默认去除字符串两端的空格,多个空格也能一次性去掉;但是注意只是两段,内部无法控制!!
string.Trim(char []) 当有多个特定字符需要去除的时候,用这种方法
string.TrimStart( char c) 不常用 针对字符串首端去除指定标记
string.TrimStart( char []) 针对字符串首端去除指定标记组
string.TrimEnd( char c) 不常用 针对字符串末端去除指定标记
string.TrimEnd( char []) 针对字符串末端去除指定标记组
string.Trim()默认方法是去除字符串两头的空格,中间的空格它去除不了,并且如果某一端空格两个及以上,它只能消除一个空格!!!
string.TrimStart只能对字符串开始端处理;string.TrimEnd只能对字符串末端处理!!!
下面是以上6种情况的学习操作的代码
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace ConsoleApplication5 { class Program { static void Main(string[] args) { string words = " _hh _wo si _ "; Console.WriteLine("初始words:" + words); Console.WriteLine("初始words的字符个数:" + words.Length); Console.WriteLine(); Console.WriteLine("========================"); Console.WriteLine(); string newWords = words.Trim(); Console.WriteLine("使用Trim()方法所执行的结果:" + newWords); Console.WriteLine("使用Trim()方法后字符的个数:" + newWords.Length); char[] com = new char[] { ‘ ‘,‘_‘}; string newnewWords = words.Trim(com); Console.WriteLine("使用Trim(Char [])方法所执行的结果:" + newnewWords); Console.WriteLine("使用Trim(Char [])方法后字符的个数:" + newnewWords.Length); Console.WriteLine(); Console.WriteLine("========================"); Console.WriteLine(); string triS = words.TrimStart(‘ ‘); Console.WriteLine("使用TrimStart(char c )方法所执行的结果:" + triS); Console.WriteLine("使用TrimStart(char c)方法所执行的结果:" + triS.Length); char[] com1 = new char[] { ‘ ‘, ‘_‘ }; triS = words.TrimStart(com1); Console.WriteLine("使用TrimStart(char [])方法所执行的结果:" + triS); Console.WriteLine("使用TrimStart(char [])方法所执行的结果:" + triS.Length); Console.WriteLine(); Console.WriteLine("========================"); Console.WriteLine(); string triE = words.TrimEnd(‘ ‘); Console.WriteLine("使用TrimEnd(char c )方法所执行的结果:" + triE); Console.WriteLine("使用TrimEnd(char c)方法所执行的结果:" + triE.Length); char[] com2 = new char[] { ‘ ‘, ‘_‘ }; triE = words.TrimEnd(com2); Console.WriteLine("使用TrimEnd(char [])方法所执行的结果:" + triE); Console.WriteLine("使用TrimEnd(char [])方法所执行的结果:" + triE.Length); Console.ReadKey(); } } }
问题来了,如果我想得到一个连续的,连中间的空格也剔除掉的字符串,该怎么操作呢~?
思想:用Split方法借助要去除的标记当作参数,把字符串分割成了一个字符数组,然后把这个字符数组里面的每个字符连续输出来
using System; using System.Collections; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace ConsoleApplication5 { class Program { static void Main(string[] args) { string words = ". I_ am shang, ,qing_feng ."; // ArrayList list = new ArrayList(); string[] word = words.Split(‘.‘, ‘_‘,‘ ‘, ‘,‘);//空格不写的情况下, I am shang qingfeng 这不是我们想要的结果,所以把空格符也当作分割符 foreach (string s in word) Console.Write(s);//Iamshangqingfeng Console.ReadKey(); } } }