优秀的编程知识分享平台

网站首页 > 技术文章 正文

C#编程零基础到入门学习-C#字符串类型(4-3)

nanyue 2024-09-15 23:29:15 技术文章 4 ℃

C# 字符串类型

在 C# 中,允许使用字符数组来表示字符串,但是,常见的做法是使用 string 关键字来声明一个字符串变量。string 关键字是 System.String 类的别名。

创建 String 对象

可使用以下方法之一来创建 string 对象:

  • 通过给 String 变量指定一个字符串
  • 通过使用 String 类构造函数
  • 通过使用字符串串联运算符( +
  • 通过检索属性或调用一个返回字符串的方法
  • 通过格式化方法来转换一个值或对象为它的字符串表示形式

例如(源代码):

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

namespace StringVar
{
    internal class Program
    {
        static void Main(string[] args)
        {
            //字符串,字符串连接
            string ename,fname, lname;
            ename = "TOM";
            fname = "jim";
            lname = "Atkinson";
            string fullname = ename+fname + lname;
            Console.WriteLine("Full Name: {0}", fullname);
            //通过使用 string 构造函数
            char[] letters = { 'H', 'e', 'l', 'l', 'o' };
            string greetings = new string(letters);
            Console.WriteLine("Greetings: {0}", greetings);
            //方法返回字符串
            string[] sarray = { "Hello", "From", "Tutorials", "Point" };
            string message = String.Join(" ", sarray);
            Console.WriteLine("Message: {0}", message);
            //用于转化值的格式化方法
            DateTime waiting = new DateTime(2023, 09, 05, 08, 00, 1);
            string chat = String.Format("Message sent at {0:t} on {0:D}",
            waiting);
            Console.WriteLine("Message: {0}", chat);
            Console.ReadKey();
        }
    }
}

结果:

Full Name: TOMjimAtkinson
Greetings: Hello
Message: Hello From Tutorials Point
Message: Message sent at 8:00 on 2023年9月5日


String 类的属性

1、Chars在当前 String 对象中获取 Char 对象的指定位置。

2、Length在当前的 String 对象中获取字符数

String 类的方法

String 类有许多方法用于 string 对象的操作。

例如:

1、public static int Compare( string strA, string strB ) 比较两个指定的 string 对象,并返回一个表示它们在排列顺序中相对位置的整数。该方法区分大小写。

2、public static int Compare( string strA, string strB, bool ignoreCase ) 比较两个指定的 string 对象,并返回一个表示它们在排列顺序中相对位置的整数。但是,如果布尔参数为真时,该方法不区分大小写。

3、public static string Concat( string str0, string str1 ) 连接两个 string 对象。

4、public static string Concat( string str0, string str1, string str2 ) 连接三个 string 对象。

5、public static string Concat( string str0, string str1, string str2, string str3 ) 连接四个 string 对象。

6、public bool Contains( string value ) 返回一个表示指定 string 对象是否出现在字符串中的值。

7、public static string Copy( string str ) 创建一个与指定字符串具有相同值的新的 String 对象。

8、public void CopyTo( int sourceIndex, char[] destination, int destinationIndex, int count ) 从 string 对象的指定位置开始复制指定数量的字符到 Unicode 字符数组中的指定位置。

9、public bool EndsWith( string value ) 判断 string 对象的结尾是否匹配指定的字符串。

10、public bool Equals( string value ) 判断当前的 string 对象是否与指定的 string 对象具有相同的值。

11、public static bool Equals( string a, string b ) 判断两个指定的 string 对象是否具有相同的值。

12、public static string Format( string format, Object arg0 ) 把指定字符串中一个或多个格式项替换为指定对象的字符串表示形式。

13、public int IndexOf( char value ) 返回指定 Unicode 字符在当前字符串中第一次出现的索引,索引从 0 开始。

14、public int IndexOf( string value ) 返回指定字符串在该实例中第一次出现的索引,索引从 0 开始。

15、public int IndexOf( char value, int startIndex ) 返回指定 Unicode 字符从该字符串中指定字符位置开始搜索第一次出现的索引,索引从 0 开始。

16、public int IndexOf( string value, int startIndex ) 返回指定字符串从该实例中指定字符位置开始搜索第一次出现的索引,索引从 0 开始。

17、public int IndexOfAny( char[] anyOf ) 返回某一个指定的 Unicode 字符数组中任意字符在该实例中第一次出现的索引,索引从 0 开始。

18、public int IndexOfAny( char[] anyOf, int startIndex ) 返回某一个指定的 Unicode 字符数组中任意字符从该实例中指定字符位置开始搜索第一次出现的索引,索引从 0 开始。

19、public string Insert( int startIndex, string value ) 返回一个新的字符串,其中,指定的字符串被插入在当前 string 对象的指定索引位置。

20、public static bool IsNullOrEmpty( string value ) 指示指定的字符串是否为 null 或者是否为一个空的字符串。

21、public static string Join( string separator, string[] value ) 连接一个字符串数组中的所有元素,使用指定的分隔符分隔每个元素。

22、public static string Join( string separator, string[] value, int startIndex, int count ) 连接接一个字符串数组中的指定位置开始的指定元素,使用指定的分隔符分隔每个元素。

23、public int LastIndexOf( char value ) 返回指定 Unicode 字符在当前 string 对象中最后一次出现的索引位置,索引从 0 开始。

24、public int LastIndexOf( string value ) 返回指定字符串在当前 string 对象中最后一次出现的索引位置,索引从 0 开始。

25、public string Remove( int startIndex ) 移除当前实例中的所有字符,从指定位置开始,一直到最后一个位置为止,并返回字符串。

26、public string Remove( int startIndex, int count ) 从当前字符串的指定位置开始移除指定数量的字符,并返回字符串。

27、public string Replace( char oldChar, char newChar ) 把当前 string 对象中,所有指定的 Unicode 字符替换为另一个指定的 Unicode 字符,并返回新的字符串。

28、public string Replace( string oldValue, string newValue ) 把当前 string 对象中,所有指定的字符串替换为另一个指定的字符串,并返回新的字符串。

29、public string[] Split( params char[] separator ) 返回一个字符串数组,包含当前的 string 对象中的子字符串,子字符串是使用指定的 Unicode 字符数组中的元素进行分隔的。

30、public string[] Split( char[] separator, int count ) 返回一个字符串数组,包含当前的 string 对象中的子字符串,子字符串是使用指定的 Unicode 字符数组中的元素进行分隔的。int 参数指定要返回的子字符串的最大数目。

31、public bool StartsWith( string value ) 判断字符串实例的开头是否匹配指定的字符串。

32、public char[] ToCharArray()返回一个带有当前 string 对象中所有字符的 Unicode 字符数组。

33、public char[] ToCharArray( int startIndex, int length ) 返回一个带有当前 string 对象中所有字符的 Unicode 字符数组,从指定的索引开始,直到指定的长度为止。

34、public string ToLower()把字符串转换为小写并返回。

35、public string ToUpper()把字符串转换为大写并返回。

36、public string Trim()移除当前 String 对象中的所有前导空白字符和后置空白字符。

如果有更多的需求请访问 MSDN 库,查看完整的方法列表和 String 类构造函数。

示例源代码1-字符串与字符串相比较:

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

namespace StringVar01
{
    internal class Program
    {
        static void Main(string[] args)
        {
            string str1 = "This is String";
            string str2 = "This is Variable";
            if (String.Compare(str1, str2) == 0)
            {
                Console.WriteLine(str1 + " and " + str2 + " are equal.");
            }
            else
            {
                Console.WriteLine(str1 + " and " + str2 + " are not equal.");
            }
            Console.ReadKey();
        }
    }
}


This is String and This is Variable are not equal.

示例源代码2-字符串内包含字符串:

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

namespace StringVar02
{
    internal class Program
    {
        static void Main(string[] args)
        {
            string str = "This is StringVar02 ";
            string str1 = "my name is Tom";
            if (str.Contains("test"))//如果字符串内包含“test”
            {
                Console.WriteLine("未发现“test”字符串");
            }
            else
            {
                Console.WriteLine("请检查(str)字符串");
            }
            if (str1.Contains("Tom"))//如果字符串内包含“Tom”
            {
                Console.WriteLine("第二个字符串(str1)内包含'Tom'");
            } 
            Console.ReadKey();
        }
    }
}


示例源代码3-获取子字符串:

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

namespace StringVar03
{
    internal class Program
    {
        static void Main(string[] args)
        {
            string str = "Last night I dreamt of ZhouGong";
            Console.WriteLine(str);//先输出上述句子
            string substr1 = str.Substring(23);//23开始后截取字符串
            string substr2 = str.Substring(0,10);//第一个字符串开始截取10位
            Console.WriteLine(substr1);//输出截取后的字符串
            Console.WriteLine(substr2);
            Console.ReadKey();
        }
    }
}


示例源代码4-连接字符串:

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

namespace StringVar04
{
    internal class Program
    {
        static void Main(string[] args)
        {
            string[] strArray = new string[]{"1、通过给 String 变量指定一个字符串",
               "2、通过使用 String 类构造函数",
               "3、通过使用字符串串联运算符( + )",
               "4、通过检索属性或调用一个返回字符串的方法",
               "5、通过格式化方法来转换一个值或对象为它的字符串表示形式"};//新建字符串列表
            string str1 = String.Join("\t",strArray);
            string str2 = String.Join("\n", strArray);
            Console.WriteLine(str1);
            Console.WriteLine("------------------------------------------------------");
          //st1和str2输出的分割线
            Console.WriteLine(str2);
            Console.ReadKey();
        }
    }
}


方法不再一一举例了,有兴趣的可以逐一练习。

最近发表
标签列表