C# 字符串(String)

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

创建 String 对象

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

  • 通过给 String 变量指定一个字符串
  • 通过使用 String 类构造函数
  • 通过使用字符串串联运算符( + )
  • 通过检索属性或调用一个返回字符串的方法
  • 通过格式化方法来转换一个值或对象为它的字符串表示形式
  • using System;
    
    namespace StringApplication
    {
    class Program
    {
    static void Main(string[] args)
    {
    //字符串,字符串连接
    string fname, lname;
    fname = "Rowan";
    lname = "Atkinson"; string fullname = 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(2012, 10, 10, 17, 58, 1);
    string chat = String.Format("Message sent at {0:t} on {0:D}",
    waiting);
    Console.WriteLine("Message: {0}", chat);
    Console.ReadKey() ;
    }
    }
    }
    代码执行显示:
  • Full Name: RowanAtkinson
    Greetings: Hello
    Message: Hello From Tutorials Point
    Message: Message sent at 17:58 on Wednesday, 10 October 2012
  • String 类的属性

    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 类构造函数。

  • 比较字符串:
  • using System;
    
    namespace StringApplication
    {
    class StringProg
    {
    static void Main(string[] args)
    {
    string str1 = "This is test";
    string str2 = "This is text"; if (String.Compare(str1, str2) == 0)
    {
    Console.WriteLine(str1 + " and " + str2 + " are equal.");
    }
    else
    {
    Console.WriteLine(str1 + " and " + str2 + " are not equal.");
    }
    Console.ReadKey() ;
    }
    }
    }

    字符串包含字符串:

  • using System;
    
    namespace StringApplication
    {
    class StringProg
    {
    static void Main(string[] args)
    {
    string str = "This is test";
    if (str.Contains("test"))
    {
    Console.WriteLine("The sequence 'test' was found.");
    }
    Console.ReadKey() ;
    }
    }
    }

    获取子字符串:

    using System;
    namespace StringApplication
    {
    class StringProg
    {
    static void Main(string[] args)
    {
    string str = "Last night I dreamt of San Pedro";
    Console.WriteLine(str);
    string substr = str.Substring(23);
    Console.WriteLine(substr);
    Console.ReadKey() ;
    }
    }
    }

    连接字符串:

  • using System;
    
    namespace StringApplication
    {
    class StringProg
    {
    static void Main(string[] args)
    {
    string[] starray = new string[]{"Down the way nights are dark",
    "And the sun shines daily on the mountain top",
    "I took a trip on a sailing ship",
    "And when I reached Jamaica",
    "I made a stop"}; string str = String.Join("\n", starray);
    Console.WriteLine(str);
    Console.ReadKey() ;
    }
    }
    }

    C# string.Format格式化日期

    DateTime dt = new DateTime(2017,4,1,13,16,32,108);
    string.Format("{0:y yy yyy yyyy}",dt); //17 17 2017 2017
    string.Format("{0:M MM MMM MMMM}", dt);//4 04 四月 四月
    string.Format("{0:d dd ddd dddd}", dt);//1 01 周六 星期六
    string.Format("{0:t tt}", dt);//下 下午
    string.Format("{0:H HH}", dt);//13 13
    string.Format("{0:h hh}", dt);//1 01
    string.Format("{0:m mm}", dt);//16 16
    string.Format("{0:s ss}", dt);//32 32
    string.Format("{0:F FF FFF FFFF FFFFF FFFFFF FFFFFFF}", dt);//1 1 108 108 108 108 108
    string.Format("{0:f ff fff ffff fffff ffffff fffffff}", dt);//1 10 108 1080 10800 108000 1080000
    string.Format("{0:z zz zzz}", dt);//+8 +08 +08:00 string.Format("{0:yyyy/MM/dd HH:mm:ss.fff}",dt);  //2017/04/01 13:16:32.108
    string.Format("{0:yyyy/MM/dd dddd}", dt);      //2017/04/01 星期六
    string.Format("{0:yyyy/MM/dd dddd tt hh:mm}", dt); //2017/04/01 星期六 下午 01:16
    string.Format("{0:yyyyMMdd}", dt);         //20170401
    string.Format("{0:yyyy-MM-dd HH:mm:ss.fff}", dt); //2017-04-01 13:16:32.108

    除去string.Format()可以对日期进行格式化之外,*.ToString()也可以实现相同的效果:

    DateTime dt = new DateTime(2017,4,1,13,16,32,108);
    dt.ToString("y yy yyy yyyy");//17 17 2017 2017
    dt.ToString("M MM MMM MMMM");//4 04 四月 四月
    dt.ToString("d dd ddd dddd");//1 01 周六 星期六
    dt.ToString("t tt");//下 下午
    dt.ToString("H HH");//13 13
    dt.ToString("h hh");//1 01
    dt.ToString("m mm");//16 16
    dt.ToString("s ss");//32 32
    dt.ToString("F FF FFF FFFF FFFFF FFFFFF FFFFFFF");//1 1 108 108 108 108 108
    dt.ToString("f ff fff ffff fffff ffffff fffffff");//1 10 108 1080 10800 108000 1080000
    dt.ToString("z zz zzz");//+8 +08 +08:00 dt.ToString("yyyy/MM/dd HH:mm:ss.fff"); //2017/04/01 13:16:32.108
    dt.ToString("yyyy/MM/dd dddd");      //2017/04/01 星期六
    dt.ToString("yyyy/MM/dd dddd tt hh:mm"); //2017/04/01 星期六 下午 01:16
    dt.ToString("yyyyMMdd");         //20170401
    dt.ToString("yyyy-MM-dd HH:mm:ss.fff"); //2017-04-01 13:16:32.108

string字符串类型的属性及各种方法的更多相关文章

  1. JavaScript数据类型 String字符串类型的属性和方法

    属性 字符串String类型的每个实例都有一个length属性,表示字符串中的字符个数.由于字符串是不可变的,所以字符串的长度也不可变 字符串的length属性不会在for/in循环中枚举,也不能通过 ...

  2. 数据类型总结——String(字符串类型)

    相关文章 简书原文:https://www.jianshu.com/p/546a755c3eb6 数据类型总结——概述:https://www.cnblogs.com/shcrk/p/9266015. ...

  3. redis:string字符串类型的操作

    1. string字符串类型的操作: 1.1. set 设置单个值 语法:set key value [EX seconds] [PX milliseconds] [NX|XX] 注: EX seco ...

  4. js将某个值转换为String字符串类型或转换为Number数字类型

    将某个值转换为String类型 1. value.toString() toString()方法返回一个表示该对象的字符串 var a = 123 a.toString() // '123' 2. & ...

  5. js最实用string(字符串)类型的使用及截取与拼接详解

    var a = '世界上最远的距离不是天涯海角'; 一.通过字符获取位置或通过位置获取字符: //指定位置返回字符console.log(str.charAt(1));console.log(str[ ...

  6. 如何将int整型转换成String字符串类型

    自动类型转换适用于兼容类型之间从小范围到大范围数据的转换. nt转换成String int i = 10; int b=1: System.out.pritnln(a + b); 里面靠近字符串,所以 ...

  7. JavaScript数据类型 String字符串类型

    前言 javascript没有表示单个字符的字符型,只有字符串String类型,字符型相当于仅包含一个字符的字符串 字符串String是javascript基本数据类型,同时javascript也支持 ...

  8. 2、Python 基础类型 -- String 字符串类型

    字符串常用的方法: 1.分割:string.split(str="", num=string.count(str))   以 str 为分隔符切片 string,如果 num 有指 ...

  9. 4.String字符串类型操作

    String类型操作 1.set key value 设置key对应的值为string类型的value  2.mset key1 value1 … keyN valueN 一次设置多个key的值 3. ...

  10. string字符串类型

    一次设置一个key-value 使用set命令可以一次设置一个key-value,使用get命令可以查询key所关联的字符串值.如下图所示. 一次设置多个key-value 使用mset命令可以设置多 ...

随机推荐

  1. docker 二进制安装

    首先所属环境为内网并且服务器拥有的开发环境不确定,需要跑当前服务所需代码,所以优先选择使用docker docker 文档地址 https://docs.docker.com 在 install 中存 ...

  2. kubeSphere+kubernetes 集群更新证书

    模拟问题点 使用kubernetes时错误提示 yang@master:~$ kubectl get nodes Unable to connect to the server: x509: cert ...

  3. Oracle获取一段时间前的数据

    获取当前时间一周前的日期selectsysdate - interval '7' dayfrom dual类似的当前时间减去7分钟的时间selectsysdate,sysdate - interval ...

  4. git commit提交代码时跳过 eslint校验

    在使用命令 git commit -m '提交信息' 将本地代码提交到远程仓库时候, 如果项目安装了 per-commit,则会在Git键入提交信息前进行代码风格检查,如果代码不符合相应规则,则报错. ...

  5. shell_Day07

    函数: 函数介绍function 为了避免代码重复使用,我们一般通过函数编写代码块,而这一个代码块用来实现某种功能,这个功能在后面的代码中,会重复调用: 函数的语法格式 function check_ ...

  6. JWT 工具类的编写

    导入JWT pom依赖 <!--JWT 依赖--><dependency> <groupId>io.jsonwebtoken</groupId> < ...

  7. 何同学新视频火了!找到减少沉迷手机的最佳方法:附免费APP

    以优质原创视频吸引百万粉丝的 Up 主"何同学"昨晚(1 月 6 日)上线了最新作品,探讨了如何有效地减少现代人使用或者说沉迷手机的时间. 在视频开头,何同学提到,整理了 5000 ...

  8. uni-app --vue3--TypeScript 微信小程序开发

    微信小程序开发文档: https://developers.weixin.qq.com/miniprogram/dev/framework/quickstart/getstart.html#%E7%9 ...

  9. 【msys2】更新镜像源

    更新镜像源 镜像源的地址如:D:\msys64\etc\pacman.d 从下面选择镜像源剪切到Primary中第一行: 如下图,目录底下的所有都需要更改: 之后需要强制更新一下列表,https:// ...

  10. go 语言的宕机恢复(recover)

    go 语言中的三种报错机制 第一种,也就是常说的 error 类型错误,不需要 recover 拯救,处理方式自己决定 第二种,panic 和 recover 是紧密集合的,有点类似 try catc ...