news 2026/3/31 14:01:36

C# 字符串(String)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
C# 字符串(String)

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 类有以下两个属性:

序号属性名称 & 描述
1Chars
在当前String对象中获取Char对象的指定位置。
2Length
在当前的String对象中获取字符数。

String 类的方法

String 类有许多方法https://www.zhihu.com/zvideo/1995660256580235309/

用于 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, 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() ;
}
}
}

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/3/25 17:31:52

Qwen3-1.7B实战应用:轻松搭建个人聊天机器人

Qwen3-1.7B实战应用:轻松搭建个人聊天机器人 1. 引言 随着大语言模型技术的快速发展,越来越多轻量级、高性能的小参数模型进入开发者视野。Qwen3-1.7B作为阿里巴巴通义千问系列中的一款高效密集模型,在保持较小体积的同时具备出色的对话理解…

作者头像 李华
网站建设 2026/3/13 15:45:43

DeepSeek-R1-Distill-Qwen-1.5B教育场景落地:数学题逐步推理系统搭建

DeepSeek-R1-Distill-Qwen-1.5B教育场景落地:数学题逐步推理系统搭建 1. 引言 随着大模型在教育领域的深入应用,如何构建一个高效、准确且可部署的数学题自动解题系统成为关键挑战。传统大模型虽然具备一定的推理能力,但在边缘设备上部署时…

作者头像 李华
网站建设 2026/3/27 16:07:45

Qwen2.5-7B开箱即用:没N卡也能跑,按需付费不浪费

Qwen2.5-7B开箱即用:没N卡也能跑,按需付费不浪费 你是不是也遇到过这样的情况?作为一名学生党,手头只有一台轻薄本,连独立显卡都没有,更别提什么高端GPU了。但毕业设计偏偏要测试大模型的代码生成能力——…

作者头像 李华
网站建设 2026/3/30 5:58:13

树莓派4入门必看:新手配置全流程指南

树莓派4新手上手全攻略:30分钟完成无显示器配置 你刚收到一块崭新的树莓派4,手里攥着电源线、microSD卡和读卡器,却不知道从何下手?没有显示器、键盘也能用吗?系统怎么装?Wi-Fi怎么连?SSH为何连…

作者头像 李华
网站建设 2026/3/28 5:32:18

通义千问2.5-0.5B-Instruct实战教程:支持29种语言部署详解

通义千问2.5-0.5B-Instruct实战教程:支持29种语言部署详解 1. 引言 1.1 学习目标 本文旨在为开发者提供一份完整、可落地的 Qwen2.5-0.5B-Instruct 模型部署实战指南。通过本教程,您将掌握: 如何在本地设备(包括边缘设备&…

作者头像 李华
网站建设 2026/3/28 3:30:18

3分钟上手APK安装神器:Windows平台安卓应用部署终极指南

3分钟上手APK安装神器:Windows平台安卓应用部署终极指南 【免费下载链接】APK-Installer An Android Application Installer for Windows 项目地址: https://gitcode.com/GitHub_Trending/ap/APK-Installer 还在为Windows上无法直接安装Android应用而烦恼吗&…

作者头像 李华