news 2026/7/4 19:19:44

C#字符串与数组操作全解析

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
C#字符串与数组操作全解析

第八次

一,字符串创建

1,对象类型: 可以通过class 创建一个对象类型

如:People p1 = new People() { Id=100}; //p1对象类型

2,基本类型: int float double 等 int = 10

如:int a = 10;
Test(a);
Test1(p1)

3,字符串的创建方法

【1】, 字面量创建方式: 是最简单的创建方式 建议使用的一种方式

如: string s1 = "hello yvwei";

【2】,2, 字符串中有特殊符号 \ 也是一个特殊字符 \n 换行; \t Tab; \r回车; \s space, \r将光标移回当前行的行首,但不换到新行。

如:string s3 = "我是余伟,\\n爱\\t吃肘子\\r";
Console.WriteLine(s3);

【3】,要求字符串显示\n 需要对特殊符号进行转义处理 加一个\

如:string s3 = "我是余伟,\\n爱\\t吃肘子\\r";
Console.WriteLine(s3);

【4】,使用@符号创建字符串 保留字符串各种符号换行等效果

【5】,字符串创建方式 通过new string构建字符串

如:

char[] chars = new char[] { '老', '余', '伟' };//创建一个字符数组

string str = new string(chars);
Console.WriteLine(str);

【6】,使用$符号进行格式化

如:double gz = 1000000;
double age = 18;
string str6 = $"工资{gz},年龄{age}";
Console.WriteLine(str6);

【7】,字符串属性 类似于特殊的数组 索引值从0开始

如: string str7 = "誉为是多少";
Console.WriteLine(str7.Length); // 字符个数 7
Console.WriteLine(str7[str7.Length-1]); // 少

也可以遍历

for (int i = 0; i< str7.Length; i ++)
{
char c = str7[i];
Console.WriteLine(c);
}

二,字符串的常用方法

1,,IndexOf() 获取字符在字符串中的索引值 如果找到了返回索引值, 如果找不到返回-1

如: string str = "abcdefgabc";
Console.WriteLine(str.IndexOf("a")); //0
Console.WriteLine(str.IndexOf("h")); //-1
Console.WriteLine(str.IndexOf("bc")); //1
Console.WriteLine(str.IndexOf('f', 4)); //5 从参数2开始搜索参数1
输出结果:

2,LastIndexOf() 从后往前找 找出第一个与之匹配的字符

3,IndexOfAny() 从字符组成这个范围中找任何一个对应的索引值

4,LastIndexOf() 从后往前找 找到范围其中的一个索引值

5, Contains() 是否包含参数 返回值 true/false

6,ToUpper() 把字符转成大写的

7,ToLower() 把字符串改为小写

8,StartsWith() 判断字符串中是否已该参数开头

如:

string str2 = "余伟大聪明";
Console.WriteLine(str2.StartsWith("余伟"));//true
Console.WriteLine(str2.StartsWith("余1伟"));//false

9, EndsWith() 判断是不是以 什么结尾

10,IsNullOrEmpty() 判断字符串是不是null 或者是空字符串

如:

string str3 = "";
Console.WriteLine(string.IsNullOrEmpty(str3)); //true


str3 = null;
Console.WriteLine(string.IsNullOrEmpty(str3));//true

str3 = " ";//空格字符串

Console.WriteLine(string.IsNullOrEmpty(str3));//false

11, Equals() 判断两个字符串是否相等

12,Join() 把指定的分隔符号添加对应的字符之间

13,Substring() 截取字符串从索引值为1开始,截取3个长度

14,Split() 按照指定的符号进行分割字符串

15, 重点 Concat () 拼接多个字符串

16,//从原字符串参数1索引开始赋值,赋值到参数2数组里面,放到目标数组的索引值为参数3的地方,复制参数四个元素

如:

char[] c1 = new char[15] ; //定义一个字符数组,长度为15

str4.CopyTo(1, c1, 5, 6);
for (int i = 0; i < c1.Length; i++)
{
Console.WriteLine(c1[i]+"-------------");
}

17,Remove() 删除字符 ,从参数1开始删除, 删除参数2个数, 返回结果是剩余的

18,Replace() 用参数2,替换参数1

19, Format() 字符串格式化

20,ToCharArray() 把字符串转成一个个字符所组成的数组

三,数组

1,数组: 是一个引用类型, 目的是为了存储相同的数据,也可以通过索引值取出数组的元素数组是有顺序的,顺序是从零开始, 也可以对数组进行遍历等操作

2,数组命名 尽量在名称后加一个s , 能够使开发者知道是一个数组,例如int [] nums, string [] names 等

3,数组是有长度的,最大索引值等于长度-1;

4,定义数组
【1】,字面量定义数组(快速定义数组)
int[] nums = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 }; //创建已经添加了数组的元素

【2】,定义可以带有数组长度的数组
string[] strs = new string[6]; //长度为六的字符串数组

【3】,可以定义带初始元素和长度的数组

char[] chars = new char[6] {'A', 'A', 'A', 'A', 'A', 'B'};

【4】, 可以定义数组不带长度只带初始元素的数组
double[] doubles = new double[] { 1,2,3};

【5】,

如何给数组添加元素

//strs[0] = "余伟";//单独添加元素
//strs[1] = "猪";

//使用for循环添加
for (int i = 0; i < strs.Length; i++)
{
strs[i] = "余伟"+i+"是猪";

}

【6】,如何获取数组长度

Console.WriteLine(strs.Length);//6
Console.WriteLine(strs[0]); //获取其中一个元素

//遍历数组
for (int i = 0; i < strs.Length; i++)
{
Console.WriteLine(strs[i]+"-");

【7】,

//遍历方式二
//int 数组元素的类型
//i 每一个元素
//in 在那个数组
//nums 数组
foreach (int i in nums)
{
Console.WriteLine(i+"?");
}

//int[] 一维数组
// 数组包含: 一维数组,多维数组, 交错数组

“ 上文 为本次为第八部分内容,后续将不定时更新,若对主题感兴趣,欢迎订阅获取更新通知."


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

模型预测控制(MPC):混动汽车能量管理的革新之道

模型预测控制&#xff08;MPC&#xff09;在混合动力汽车能量管理策略开发上的运用。 利用车速预测模型&#xff08;BP或者RBF神经网络&#xff0c;预测模型资料也有发在其他链接&#xff09;根据预测的信息对车辆进行优化控制&#xff0c;可以对混动汽车的能量管理具有一定的参…

作者头像 李华
网站建设 2026/7/2 2:12:01

UML,HTML,XML,YAML,JSON的关系概述

探讨的这五种语言/格式各有不同的设计目的和应用领域&#xff0c;它们之间的关系可以从数据表示、结构化标记、序列化、建模等角度来分析。下面将分别介绍它们&#xff0c;然后阐述它们之间的关系&#xff0c;并举例说明。 一、概述 UML&#xff08;统一建模语言&#xff09;&…

作者头像 李华
网站建设 2026/6/30 12:02:59

主流 Linux 发行版优缺点与适用场景

发行版核心优点主要缺点适用人群 / 场景Ubuntu1. 新手友好&#xff0c;图形化安装 / 配置简单&#xff0c;LTS 版 5 年支持2. 软件源丰富&#xff0c;第三方兼容好&#xff0c;社区资源足3. 云 / 容器生态成熟&#xff0c;服务器版部署便捷1. 预装软件多&#xff0c;不够轻量2.…

作者头像 李华
网站建设 2026/7/3 15:33:09

教程 33 - 资源系统

上一篇&#xff1a;几何体系统 | 下一篇&#xff1a;多渲染通道 | 返回目录 &#x1f4da; 快速导航 目录 简介学习目标资源系统架构 为什么需要资源系统统一加载接口可插拔加载器 资源类型定义资源加载器模式 加载器结构加载器注册 内置加载器实现 文本加载器二进制加载器图像…

作者头像 李华
网站建设 2026/7/4 6:39:46

三菱FX5U与台达DT330温控器通讯实现远程双设定

三菱FX5U与3台台达DT330温控器通讯程序本体远程双设定(SL5U-14) 功能&#xff1a;通过三菱FX5U本体485口&#xff0c;结合触摸屏网口&#xff0c;实现对3台台达DT330温控器设定温度&#xff0c;读取温度&#xff0c;以及在温控器本体与远程触摸屏都能同时改变设定温度。 反应灵…

作者头像 李华
网站建设 2026/6/30 9:38:30

【毕业设计】基于SpringBoot+Vue工厂生产设备维护管理系统设计和实现基于springboot工厂生产设备维护管理系统的设计(源码+文档+远程调试,全bao定制等)

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…

作者头像 李华