亿迅智能制造网
工业4.0先进制造技术信息网站!
首页 | 制造技术 | 制造设备 | 工业物联网 | 工业材料 | 设备保养维修 | 工业编程 |
home  MfgRobots >> 亿迅智能制造网 >  >> Industrial programming >> C语言

掌握 C# 字符串:基础、操作与进阶技巧完全指南

掌握 C# 字符串:基础、操作与进阶技巧

本教程通过示例讲解 C# 字符串及其常用方法。

在 C# 中,字符串是字符序列。例如 "hello" 包含字符 'h'、'e'、'l'、'l'、'o'。

使用 string 关键字创建字符串:

// 创建字符串
string str = "C# Programming";

此处创建名为 str 的 string,赋值 "C# Programming"。C# 用双引号表示字符串。


示例:创建字符串

using System;
namespace CsharpString {
    class Test {
        public static void Main(string[] args) {
            // 创建字符串
            string str1 = "C# Programming";
            string str2 = "Programiz";
            // 打印字符串
            Console.WriteLine(str1);
            Console.WriteLine(str2);
            Console.ReadLine();
        }
    }
}

输出

C# Programming
Programiz

创建了 str1、str2 并打印。

注意:C# 字符串变量非 int、char 等基元类型,而是 String 类的对象。


字符串操作

C# string 提供多种方法执行不同操作。我们看一些常用操作。

1. 获取字符串长度

使用 Length 属性:

using System;
namespace CsharpString {
    class Test {
        public static void Main(string[] args) {
            string str = "C# Programming";
            Console.WriteLine("string: " + str);
            int length = str.Length;
            Console.WriteLine("Length: " + length);
            Console.ReadLine();
        }
    }
}

输出

string: C# Programming
Length: 14

Length 属性计算字符总数并返回。


2. 连接两个字符串

使用 Concat() 方法连接:

using System;
namespace CsharpString {
    class Test {
        public static void Main(string[] args) {
            string str1 = "C# ";
            Console.WriteLine("string str1: " + str1);
            string str2 = "Programming";
            Console.WriteLine("string str2: " + str2);
            string joinedString = string.Concat(str1, str2);
            Console.WriteLine("Joined string: " + joinedString);
            Console.ReadLine();
        }
    }
}

输出

string str1: C#
string str2: Programming
Joined string: C# Programming

语句 string joinedString = string.Concat(str1, str2); 将 str1 与 str2 连接赋给 joinedString。

也可用 + 运算符连接。详见 C# string Concat。


3. 比较两个字符串

用 Equals() 方法比较:

using System;
namespace CsharpString {
    class Test {
        public static void Main(string[] args) {
            string str1 = "C# Programming";
            string str2 = "C# Programming";
            string str3 = "Programiz";
            Boolean result1 = str1.Equals(str2);
            Console.WriteLine("string str1 and str2 are equal: " + result1);
            Boolean result2 = str1.Equals(str3);
            Console.WriteLine("string str1 and str3 are equal: " + result2);
            Console.ReadLine();
        }
    }
}

输出

string str1 and str2 are equal: True
string str1 and str3 are equal: False

创建 str1、str2、str3,用 Equals() 判断相等。


字符串对象的不可变性

C# 字符串不可变。一旦创建,无法改变该字符串。

举例:

// 创建字符串
string str = "Hello ";

str 持有 "Hello "。

现想修改 str:

// 添加 "World"
str = string.Concat(str, "World");

使用 Concat() 添加 "World"。

但字符串不可变,为何能修改?

实际发生过程:

  1. C# 取 "Hello " 的值。
  2. 创建新字符串,将 "World" 追加到 "Hello "。
  3. 创建新字符串对象,值为 "Hello World",存入 str。
  4. 原字符串 "Hello " 因无其他引用被释放供 GC 回收。

字符串转义序列

转义字符用于在字符串中插入特殊字符。

假设需在字符串中包含双引号:

// 包含双引号
string str = "This is the "String" class";

因双引号标识字符串,编译器会将 "This is the " 视为字符串,导致错误。

解决方法:使用转义字符 \":

// 使用转义字符
string str = "This is the \"String\" class.";

在双引号前加 \ 即可包含它。

常用转义序列:

转义序列字符名称
\'单引号
\"双引号
\\反斜杠
\0空字符
\n换行
\t水平制表

字符串插值

C# 支持字符串插值在字符串中嵌入变量。字符串字面量须以 $ 开头。示例:

using System;
namespace CsharpString {
    class Test {
        public static void Main(string[] args) {
            string name = "Programiz";
            // 字符串插值
            string message = $"Welcome to {name}";
            Console.WriteLine(message);
            Console.ReadLine();
        }
    }
}

输出

Welcome to Programiz

name 变量嵌入 message 字符串:

string message = $"Welcome to {name}";

注意:


C# 字符串常用方法

C# 字符串方法众多,常用者列表:

方法说明
Format()返回格式化字符串
Split()按分隔符拆分为子串
Substring()返回子串
Compare()比较字符串对象
Replace()替换指定字符
Contains()检查是否包含子串
Join()用指定分隔符连接字符串
Trim()移除首尾空白
EndsWith()检查是否以指定串结尾
IndexOf()返回指定字符位置
Remove()移除指定位置字符
ToUpper()转大写
ToLower()转小写
PadLeft()左侧填充
PadRight()右侧填充
StartsWith()检查是否以指定串开头
ToCharArray()转为 char 数组
LastIndexOf()返回最后一次出现位置

常见问题

1. 如何在 C# 中创建字符串数组?

字符串数组创建同其他类型数组。例如:

using System;
namespace CsharpString {
    class Test {
        public static void Main(string[] args) {
            // 字符串类型数组
            string[] animals = {"Monkey", "Dog", "Cat"};
            // 打印数组元素
            Console.WriteLine(animals[0]);
            Console.WriteLine(animals[1]);
            Console.WriteLine(animals[2]);
            Console.ReadLine();
        }
    }
}

输出

Monkey
Dog
Cat

2. C# 中 string 与 String 的区别

string 与 String 无技术差异。string 是 System.String 的别名。

推荐使用 string,因无需 using System; 即可工作。

C语言

  1. C++ 字符串函数实战:strcpy、strcat、strlen、strcmp 详解与示例
  2. C 语言字符串完全指南:声明、输入输出与库函数详解
  3. Python strip() 方法完全指南:去除首尾空白与自定义字符实战
  4. Python str.count() 完全指南:统计字符与子串出现次数实战
  5. Python format() 字符串格式化完全指南:占位符、格式化规范、类与字典应用
  6. Python len() 函数实战指南:测量字符串、列表、元组、字典等对象长度
  7. Python 字符串 find() 方法完全指南:语法、参数、替代方案与计数技巧
  8. 精通 Java 字符串:创建、方法与最佳实践
  9. 精通 Java 枚举字符串表示:默认行为、toString 重写与进阶模式
  10. Java String.charAt() 详解:语法、返回类型、异常与实战示例
  11. 精通 Java String.endsWith():检查字符串后缀(示例)
  12. Java 8 概览:函数式编程、流式 API 与日期时间新特性