C# 字符串处理

来源:互联网 发布:无锡作协网络分会成立 编辑:程序博客网 时间:2024/05/19 14:15
(1) C#中单个字符用单引号包含就是char类型,('a'),单引号中放且只能放一个字符。
 (2)单个字符也可以表示为字符串,还可以有长度为0的字符串
(3)使用s.Length属性来获得字符串中的字符个数
(4)string可以看做是char的只读数组。char c = s[1];。例子:遍历输出string中的每个元素。
(5)C#中字符串有一个重要的特性:不可变性,字符串一旦声明就不再可以改变。所以只能通过索引来读取指定位置的char,不能对指定位置的char进行修改。

(6) 如果要对char进行修改,那么就必须创建一个新的字符串,用s. ToCharArray()方法得到字符串的char数组,对数组进行修改后,调用new string(char[])这个构造函数(暂时不用细研究)来创建char数组的字符串。一旦字符串被创建,那么char数组的修改也不会造成字符串的变化。例子:将字符串中的A替换为a。


String类常用函数:

1、 ToLower():得到字符串的小写形式。
2、注意字符串是不可变的,所以这些函数都不会直接改变字符串的内容,而是把修改后的字符串的值通过函数返回值的形式返回。s.ToLower()与s=s.ToLower()

3、 ToUpper():得到字符串的大写形式; Trim()去掉字符串两端的空白。
4、 s1.Equals(s2, StringComparison.OrdinalIgnoreCase),两个字符串进行比区分大小写的比较。


字符串的分割:

1、 string[] Split(params char[] separator):将字符串按照指定的分割符分割为字符串数组;
2、string[] Split(char[] separator, StringSplitOptions options) 将字符串按照指定的char分割符分割为字符串数组( options 取RemoveEmptyEntries的时候移除结果中的空白字符串);
3、string[] Split(string[] separator, StringSplitOptions options) 将字符串按照指定的string分割符分割为字符串数组。

字符串函数详解:

1、字符串替换:string Replace(string oldValue, string newValue)将字符串中的出现oldValue的地方替换为newValue。例子:名字替换。
2、 取子字符串:string Substring(int startIndex),取从位置startIndex开始一直到最后的子字符串;
3、string Substring(int startIndex, int length),取从位置startIndex开始长度为length的子字符串,如果子字符串的长度不足length则报错。
4、 bool Contains(string value)判断字符串中是否含有子串value
5、bool StartsWith(string value)判断字符串是否以子串value开始;
6、bool EndsWith(string value)判断字符串是否以子串value结束;
7、int IndexOf(string value):取子串value第一次出现的位置。


实例分析:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;


namespace ConsoleApplication2
{
    class Program
    {
        static void Main(string[] args)
        {
            string std1 = "abcdef";
            //获取字符串的长度
            int length = std1.Length;
            Console.WriteLine("std1的长度:{0}",length);
            //将字符串转换成字符数组
            char[] std = std1.ToCharArray();
            foreach (var item in std)
            {
                Console.WriteLine(item);
            }
            //转换成大写
            std1 = std1.ToUpper();
            Console.WriteLine("std1 = {0}",std1);
            string std2 = "ABCDEF";
            //转换成小写
            std2 = std2.ToLower();
            Console.WriteLine("sdt2 = {0}",std2);


            //两个字符串的比较
            //区分大小写,按照顺序比较
            bool b = std1.Equals(std2,StringComparison.Ordinal);
            Console.WriteLine(b);
            //按照顺序比较,不区分大小写
            b = std1.Equals(std2,StringComparison.OrdinalIgnoreCase);
            Console.WriteLine(b);


            //字符串的分隔
            string std3 = "k,lm-,no,pq,,rst";
            //按照指定的字符分隔字符串,返回的是一个字符串数组,
            //分隔函数的参数是一个可变的数组
            string[] str = std3.Split(',','-');
            foreach (var item in str)
            {
                Console.WriteLine(item);
            }
            Console.WriteLine("*******************");
           // 删除数组中的空白字符串
            string[] str1 = std3.Split(new char[] {','},StringSplitOptions.RemoveEmptyEntries);
            foreach (var item in str1)
            {
                Console.WriteLine(item);
            }
            Console.WriteLine("*******************");
            //将字符串按照指定的字符串进行分隔
            string[] str2 = std3.Split(new string[] {"no"},StringSplitOptions.RemoveEmptyEntries);
            foreach (var item in str2)
            {
                Console.WriteLine(item);
            }


            //截取字符串
            string std4 = "http://www.baidu.com";
            ////从指定的位置截取直到字符串尾.
            std4 = std4.Substring(7);
            Console.WriteLine(std4);


            string std5 = "http://www.baidu.com";
            //截取一部分的字符串
            std5 = std5.Substring(7, 13);
            //如果截取的字符串的长度不足,程序会报错
            // std5 = std5.Substring(7,100);
            Console.WriteLine(std5);


            Console.ReadKey();
        }
    }


}

0 0