C# 字符串(String)

文章目录

  • 前言
  • [创建 String 对象的方式](#创建 String 对象的方式)
    • [1. 通过给 String 变量指定一个字符串](#1. 通过给 String 变量指定一个字符串)
    • [2. 通过使用 String 类构造函数](#2. 通过使用 String 类构造函数)
    • [3. 通过使用字符串串联运算符( + )](#3. 通过使用字符串串联运算符( + ))
    • [4. 通过检索属性或调用一个返回字符串的方法](#4. 通过检索属性或调用一个返回字符串的方法)
    • [5. 通过格式化方法来转换一个值或对象为它的字符串表示形式](#5. 通过格式化方法来转换一个值或对象为它的字符串表示形式)
  • [String 类的属性](#String 类的属性)
  • [String 类的方法](#String 类的方法)
  • 相关实例演示

前言

在 C# 中,虽然可以使用字符数组来表示字符串,但更为常见的做法是运用 string 关键字声明字符串变量。实际上,string 关键字是 System.String 类的别名,这意味着我们在使用 string 进行操作时,本质上就是在操作 System.String 类的实例。

创建 String 对象的方式

1. 通过给 String 变量指定一个字符串

这是最为直观的方式,直接将一个具体的字符串赋值给声明的 string 变量,例如:

csharp 复制代码
string message = "Hello, World!";

2. 通过使用 String 类构造函数

可以利用字符数组等方式通过构造函数来创建 String 对象,如下所示:

csharp 复制代码
char[] letters = { 'H', 'e', 'l', 'l','o' };
string greetings = new string(letters);

3. 通过使用字符串串联运算符( + )

能够将多个字符串或者包含字符串的表达式通过 + 运算符连接起来形成新的字符串,像这样:

csharp 复制代码
string fname = "Rowan";
string lname = "Atkinson";
string fullname = fname + lname;

4. 通过检索属性或调用一个返回字符串的方法

比如从某个对象中获取其返回字符串类型的属性值,或者调用返回字符串的方法来得到 String 对象,示例如下:

csharp 复制代码
string[] sarray = { "Hello", "From", "Tutorials", "Point" };
string message = String.Join(" ", sarray);

5. 通过格式化方法来转换一个值或对象为它的字符串表示形式

借助格式化方法,可以把如日期、数值等不同类型的数据按照特定格式转换为字符串,例如:

csharp 复制代码
DateTime waiting = new DateTime(2012, 10, 10, 17, 58, 1);
string chat = String.Format("Message sent at {0:t} on {0:D}", waiting);

String 类的属性

String 类包含以下两个常用属性:
Chars: 用于在当前 String 对象中获取指定位置的 Char 对象。通过它能够访问字符串中特定索引位置上的字符。
Length: 可以获取当前 String 对象中包含的字符数量,方便我们知晓字符串的长度信息,在很多涉及字符串处理的逻辑中,比如循环遍历字符串等场景经常会用到。

String 类的方法



相关实例演示

比较字符串实例

以下代码演示了使用 String.Compare 方法来比较两个字符串是否相等(区分大小写情况):

csharp 复制代码
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();
        }
    }
}

编译并执行上述代码,会输出相应结果表明两个字符串是否相等。

字符串包含字符串实例

下面的代码展示了运用 Contains 方法来判断一个字符串中是否包含特定的子字符串:

csharp 复制代码
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();
        }
    }
}

执行后会根据是否包含指定子字符串输出对应的提示信息。

获取子字符串实例

以下示例代码演示了如何通过 Substring 方法从一个字符串中获取指定位置开始的子字符串:

csharp 复制代码
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();
        }
    }
}

运行代码后会输出原始字符串以及提取出来的子字符串内容。

连接字符串实例

这段代码体现了使用 String.Join 方法将字符串数组中的元素按照指定分隔符连接成一个字符串的操作:

csharp 复制代码
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();
        }
    }
}

执行代码后会按照设定的换行符分隔,输出连接后的字符串内容。

相关推荐
码小跳6 小时前
Halcon案例(一):C#联合Halcon识别路由器上的散热孔
图像处理·c#
熊大如如6 小时前
Java 反射
java·开发语言
猿来入此小猿7 小时前
基于SSM实现的健身房系统功能实现十六
java·毕业设计·ssm·毕业源码·免费学习·猿来入此·健身平台
teacher伟大光荣且正确7 小时前
Qt Creator 配置 Android 编译环境
android·开发语言·qt
goTsHgo7 小时前
Spring Boot 自动装配原理详解
java·spring boot
卑微的Coder7 小时前
JMeter同步定时器 模拟多用户并发访问场景
java·jmeter·压力测试
pjx9877 小时前
微服务的“导航系统”:使用Spring Cloud Eureka实现服务注册与发现
java·spring cloud·微服务·eureka
多多*8 小时前
算法竞赛相关 Java 二分模版
java·开发语言·数据结构·数据库·sql·算法·oracle
爱喝酸奶的桃酥8 小时前
MYSQL数据库集群高可用和数据监控平台
java·数据库·mysql
神仙别闹9 小时前
基于C#+MySQL实现(WinForm)企业设备使用信息管理系统
开发语言·mysql·c#