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

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

相关推荐
Amor风信子3 分钟前
华为OD机试真题---战场索敌
java·开发语言·算法·华为od·华为
天天向上杰6 分钟前
简识JVM的栈帧优化共享技术
java·jvm
方圆想当图灵24 分钟前
缓存之美:万文详解 Caffeine 实现原理(下)
java·redis·缓存
栗豆包39 分钟前
w175基于springboot的图书管理系统的设计与实现
java·spring boot·后端·spring·tomcat
xvch42 分钟前
Kotlin 2.1.0 入门教程(七)
android·kotlin
望风的懒蜗牛1 小时前
编译Android平台使用的FFmpeg库
android
等一场春雨1 小时前
Java设计模式 十四 行为型模式 (Behavioral Patterns)
java·开发语言·设计模式
浩宇软件开发1 小时前
Android开发,待办事项提醒App的设计与实现(个人中心页)
android·android studio·android开发
ac-er88882 小时前
Yii框架中的多语言支持:如何实现国际化
android·开发语言·php
酱学编程2 小时前
java中的单元测试的使用以及原理
java·单元测试·log4j