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. npm报错最好的办法就是删掉依赖然后重装

    之前有个node工程,现在要新增antd主题,那得增加安装 craco 并修改 package.json 里的 scripts 属性 改吧改,安装一直报错: Cannot find module 'w ...

  2. 难搞的electron之安装

    做了几个electron项目,感觉最难搞的地方竟然是安装!这怎么能忍!经过几天试错,把自己能够顺利安装的流程记录下来,仅供参考. 使用框架为quasar+vue+quasar_electron qua ...

  3. 2022-04-26内部群每日三题-清辉PMP

    1.一家组织的经验教训数据库表明过去的重大项目问题是质量失败.项目经理在制定质量管理过程时决定做得更彻底.为确保质量,项目经理应该怎么做? A.根据项目的范围和需求制定质量管理计划. B.将所有质量控 ...

  4. k8s安装gitlab-ce

    docker镜像打包 根据官方说明:gitlaby docker镜像中已经不包含邮件代理传输,需要重新打包镜像 FROM gitlab/gitlab-ce RUN apt-get update &am ...

  5. SP2-0750: You may need to set ORACLE_HOME to your Oracle software directory 解决办法

    [oracle@localhost oracle]$ ./sqlplus Error 6 initializing SQL*Plus Message file sp1<lang>.msb ...

  6. iOS组件化 pod命令创建私有库详解【引用其他私有库、oc、Swift混编】

    1.命令创建pod pod lib create pod的名字 2.根据指令依次填写信息 3.填写完成后会自动打开项目 .然后修改podspec文件即可 4.创建当前pod的git 仓库.将当前代码放 ...

  7. ES6 新语法新特性总结中...

    1. 感觉 for of   通杀 for循环 和 for in呢 aaa 可以是array /object for (let k of aaa) {     console.log(k) }   2 ...

  8. ubuntu配置phpmyadmin

    之前已经把LNMP环境搭建好了 安装: sudo apt-get install phpmyadmin 安装必要依赖 sudo apt-get install php-mbstring sudo ap ...

  9. Vue.js中使用iView日期选择器并设置开始时间结束时间校验

    废话不多说直接上代码,拷贝代码保存为 html 文件,用浏览器打开就可以看到效果. 在线查看效果:https://run.iviewui.com/PmGsUW3P 1 <!DOCTYPE htm ...

  10. (jmeter笔记)有序递增和无序递增

    有序递增:计数器 Track counter independently for each user: 不勾选,每个线程引用,顺延递增 勾选 ,每个线程引用,重新计算 Reset counter on ...