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. CodeGym自学笔记08——交互对象

    交互对象 用 Java 语言编写的每个程序都由类和对象组成. 1."Java 程序员就像设计工程师一样,只是他们不制作蓝图,而是编写类.船舶零件是根据蓝图制造的,而对象是基于类创建的.&qu ...

  2. js区分图片加载中和加载完成状态

    var _ent = document.getElementById("test"); if (_ent.complete) { //图片已经加载完成 _ent.stop(); } ...

  3. pgsql中over函数的应用

    -- sum() over(partition by ... order by ...)SELECT len/sum(len)over(partition by road_id) param from ...

  4. 使用NibiruSDK 坑

    最近有项目要接NibiruSDK ,在使用时需要用他们提供的软件,进行项目签名,在这里包名前必须是 com.dream.*** ,否则会导致签名失败而且没有任何提示.用DreamClass打开apk, ...

  5. Mac OS 如何批量转换图片格式

    ​ 在苹果电脑中,如何快速批量地转换图片的格式.苹果电脑的预览程序,可以实现PNG.JPEG.JPEG-2000.PDF.TIFF格式之间的互换.这里以将PNG格式转换为JPEG格式为例. 工具/原料 ...

  6. Web Socket 长连接

    服务 package com.kinth.basic.timetask.job.donghuan.socket; import java.io.IOException; import java.net ...

  7. NSAttributedString 多格式字符串

    NSString *aString = @"哈哈标题(必填)"; NSRange range = NSMakeRange(4, 4); //当然也可以查找NSRange range ...

  8. go简单写个ini配置文件读取工具

    直接上代码: 1 package main 2 3 import ( 4 "fmt" 5 "io/ioutil" 6 "reflect" 7 ...

  9. hdu 4283You Are the One

    The TV shows such as You Are the One has been very popular. In order to meet the need of boys who ar ...

  10. 注释:MARK与TODO、FIXME

    MARK: 在OC中的用法: #pragma mark -说明文字(可以不加-) 在swift中的用法:// MARK: - 说明文字(可以不加-) TODO.FIXME(不区分OC.swift) / ...