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: Rowan Atkinson

  Greetings: Hello

  Message: Hello From Tutorials Point

  Message: Message sent at 5:58 PM on Wednesday, October 10, 2012

  String 类的属性

  String 类有以下两个属性:

  序号属性名称 & 描述

  1Chars

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

  2Length

  在当前的 String 对象中获取字符数。

  String 类的方法

  String 类有许多方法用于 string 对象的操作。下面的表格提供了一些最常用的方法:

  序号方法名称 & 描述

  1public static int Compare( string strA, string strB )

  比较两个指定的 string 对象,并返回一个表示它们在排列顺序中相对位置的整数。该方法区分大小写。

  2public static int Compare( string strA, string strB, bool ignoreCase )

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

  3public static string Concat( string str0, string str1 )

  连接两个 string 对象。

  4public static string Concat( string str0, string str1, string str2 )

  连接三个 string 对象。

  5public static string Concat( string str0, string str1, string str2, string str3 )

  连接四个 string 对象。

  6public bool Contains( string value )

  返回一个表示指定 string 对象是否出现在字符串中的值。

  7public static string Copy( string str )

  创建一个与指定字符串具有相同值的新的 String 对象。

  8public void CopyTo( int sourceIndex, char[] destination, int destinationIndex, int count )

  从 string 对象的指定位置开始复制指定数量的字符到 Unicode 字符数组中的指定位置。

  9public bool EndsWith( string value )

  判断 string 对象的结尾是否匹配指定的字符串。

  10public bool Equals( string value )

  判断当前的 string 对象是否与指定的 string 对象具有相同的值。

  11public static bool Equals( string a, string b )

  判断两个指定的 string 对象是否具有相同的值。

  12public static string Format( string format, Object arg0 )

  把指定字符串中一个或多个格式项替换为指定对象的字符串表示形式。

  13public int IndexOf( char value )

  返回指定 Unicode 字符在当前字符串中第一次出现的索引,索引从 0 开始。

  14public int IndexOf( string value )

  返回指定字符串在该实例中第一次出现的索引,索引从 0 开始。

  15public int IndexOf( char value, int startIndex )

  返回指定 Unicode 字符从该字符串中指定字符位置开始搜索第一次出现的索引,索引从 0 开始。

  16public int IndexOf( string value, int startIndex )

  返回指定字符串从该实例中指定字符位置开始搜索第一次出现的索引,索引从 0 开始。

  17public int IndexOfAny( char[] anyOf )

  返回某一个指定的 Unicode 字符数组中任意字符在该实例中第一次出现的索引,索引从 0 开始。

  18public int IndexOfAny( char[] anyOf, int startIndex )

  返回某一个指定的 Unicode 字符数组中任意字符从该实例中指定字符位置开始搜索第一次出现的索引,索引从 0 开始。

  19public string Insert( int startIndex, string value )

  返回一个新的字符串,其中,指定的字符串被插入在当前 string 对象的指定索引位置。

  20public static bool IsNullOrEmpty( string value )

  指示指定的字符串是否为 null 或者是否为一个空的字符串。

  21public static string Join( string separator, params string[] value )

  连接一个字符串数组中的所有元素,使用指定的分隔符分隔每个元素。

  22public static string Join( string separator, string[] value, int startIndex, int count )

  链接一个字符串数组中的指定元素,使用指定的分隔符分隔每个元素。

  23public int LastIndexOf( char value )

  返回指定 Unicode 字符在当前 string 对象中最后一次出现的索引位置,索引从 0 开始。

  24public int LastIndexOf( string value )

  返回指定字符串在当前 string 对象中最后一次出现的索引位置,索引从 0 开始。

  25public string Remove( int startIndex )

  移除当前实例中的所有字符,从指定位置开始,一直到最后一个位置为止,并返回字符串。

  26public string Remove( int startIndex, int count )

  从当前字符串的指定位置开始移除指定数量的字符,并返回字符串。

  27public string Replace( char oldChar, char newChar )

  把当前 string 对象中,所有指定的 Unicode 字符替换为另一个指定的 Unicode 字符,并返回新的字符串。

  28public string Replace( string oldValue, string newValue )

  把当前 string 对象中,所有指定的字符串替换为另一个指定的字符串,并返回新的字符串。

  29public string[] Split( params char[] separator )

  返回一个字符串数组,包含当前的 string 对象中的子字符串,子字符串是使用指定的 Unicode 字符数组中的元素进行分隔的。

  30public string[] Split( char[] separator, int count )

  返回一个字符串数组,包含当前的 string 对象中的子字符串,子字符串是使用指定的 Unicode 字符数组中的元素进行分隔的。int 参数指定要返回的子字符串的最大数目。

  31public bool StartsWith( string value )

  判断字符串实例的开头是否匹配指定的字符串。

  32public char[] ToCharArray()

  返回一个带有当前 string 对象中所有字符的 Unicode 字符数组。

  33public char[] ToCharArray( int startIndex, int length )

  返回一个带有当前 string 对象中所有字符的 Unicode 字符数组,从指定的索引开始,直到指定的长度为止。

  34public string ToLower()

  把字符串转换为小写并返回。

  35public string ToUpper()

  把字符串转换为大写并返回。

  36public 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() ;

  }

  }

  }

  当上面的代码被编译和执行时,它会产生下列结果:

  This is test and This is text are not equal.

  字符串包含字符串:

  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() ;

  }

  }

  }

  当上面的代码被编译和执行时,它会产生下列结果:

  The sequence 'test' was found.

  获取子字符串:

  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() ;

  }

  }

  当上面的代码被编译和执行时,它会产生下列结果:

  San Pedro

  连接字符串:

  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() ;

  }

  }

  当上面的代码被编译和执行时,它会产生下列结果:

  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

  本文转载自:w3cschool(编辑:雷林鹏 来源:网络)

雷林鹏分享:C# 字符串(String)的更多相关文章

  1. 雷林鹏分享:Ruby 字符串(String)

    Ruby 字符串(String) Ruby 中的 String 对象存储并操作一个或多个字节的任意序列,通常表示那些代表人类语言的字符. 最简单的字符串是括在单引号(单引号字符)内.在引号标记内的文本 ...

  2. 雷林鹏分享:C# 数据类型

    C# 数据类型 在 C# 中,变量分为以下几种类型: 值类型(Value types) 引用类型(Reference types) 指针类型(Pointer types) 值类型(Value type ...

  3. 雷林鹏分享:C# 变量

    C# 变量 一个变量只不过是一个供程序操作的存储区的名字.在 C# 中,每个变量都有一个特定的类型,类型决定了变量的内存大小和布局.范围内的值可以存储在内存中,可以对变量进行一系列操作. 我们已经讨论 ...

  4. 雷林鹏分享:C# 类型转换

    C# 类型转换 类型转换从根本上说是类型铸造,或者说是把数据从一种类型转换为另一种类型.在 C# 中,类型铸造有两种形式: 隐式类型转换 - 这些转换是 C# 默认的以安全方式进行的转换.例如,从小的 ...

  5. 雷林鹏分享:C# 常量

    C# 常量 常量是固定值,程序执行期间不会改变.常量可以是任何基本数据类型,比如整数常量.浮点常量.字符常量或者字符串常量,还有枚举常量. 常量可以被当作常规的变量,只是它们的值在定义后不能被修改. ...

  6. 雷林鹏分享:C# 多态性

    C# 多态性 多态性意味着有多重形式.在面向对象编程范式中,多态性往往表现为"一个接口,多个功能". 多态性可以是静态的或动态的.在静态多态性中,函数的响应是在编译时发生的.在动态 ...

  7. 雷林鹏分享:C# 正则表达式

    C# 正则表达式 正则表达式 是一种匹配输入文本的模式..Net 框架提供了允许这种匹配的正则表达式引擎.模式由一个或多个字符.运算符和结构组成. 定义正则表达式 下面列出了用于定义正则表达式的各种类 ...

  8. 雷林鹏分享:C# 文件的输入与输出

    C# 文件的输入与输出 一个 文件 是一个存储在磁盘中带有指定名称和目录路径的数据集合.当打开文件进行读写时,它变成一个 流. 从根本上说,流是通过通信路径传递的字节序列.有两个主要的流:输入流 和 ...

  9. 雷林鹏分享:C# 特性(Attribute)

    C# 特性(Attribute) 特性(Attribute)是用于在运行时传递程序中各种元素(比如类.方法.结构.枚举.组件等)的行为信息的声明性标签.您可以通过使用特性向程序添加声明性信息.一个声明 ...

随机推荐

  1. opencv学习之路(11)、图像几何变换

    一.图像缩放 #include<opencv2/opencv.hpp> using namespace cv; void main(){ Mat src=imread("E:// ...

  2. Codeforces 40E Number Table - 组合数学

    题目传送门 传送门I 传送门II 题目大意 给定一个$n\times m$的网格,每个格子上要么填$1$,要么填$-1$,有$k$个位置上的数是已经填好的,其他位置都是空的.问有多少种填法使得任意一行 ...

  3. P2234 [HNOI2002]营业额统计(Splay树)题解

    思路:Splay数查找前驱后继 代码: #include<iostream> #include<cstdio> #include<cstring> #include ...

  4. 题解——P1108低价购买(DP)

    第一问是最长下降子序列,n很小,n^2可过,注意最长下降子序列的枚举顺序即可 ;i<=n;i++)//不要写错 ;j<i;j++)//不要打成<= ) b[i]=b[j]+; 第二问 ...

  5. Redis事件订阅和持久化存储

    http://blog.csdn.net/yinwenjie/article/details/53518286 Redis从2.X版本开始,就支持一种基于非持久化消息的.使用发布/订阅模式实现的事件通 ...

  6. Kylin知识点介绍

    Kylin is an open source Distributed Analytics Engine from eBay Inc.that provides SQL interface and m ...

  7. Anaconda 安装后配置环境变量

    Anaconda 安装后在 cmd 中运算 python 无效, 是环境变量没有生效.正常安装需要有三个,配置好就行. D:\xwapp\ProgramData\Anaconda3 D:\xwapp\ ...

  8. win10 右键菜单很慢的解决方式

    本来想用 win7 的,不想花很多时间折腾了.现在新电脑主板硬盘CPU都在排挤 win7 ,真是可怜呀.正题: 新电脑的性能应该还算不错的, 18 年跑分 29w 以上,但在图标上面右键却都要转圈几秒 ...

  9. [luogu]P1852跳跳棋

    题目重点是每次不能跳过两个棋子 即对于每一个棋子的状态(a,b,c) (a<b<c) 最多有两种移动的方式 1.中间往两边跳 (a,b,c)-->(2b-a,a,c)或(a,c,2b ...

  10. Python 汉诺塔游戏

    #n 多少个盘子 def hanoi(n,x,y,z): : print(x,'→',z) else: hanoi(n-, x, z,y) #将前n-1个盘子从X移动到y上 print(x,'→',z ...