news 2026/1/10 2:32:09

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进行投诉反馈,一经查实,立即删除!
网站建设 2025/12/23 18:53:55

探索FDTD超材料吸收器的吸收光谱奥秘

FDTD超材料吸收器吸收光谱在当今科技飞速发展的时代&#xff0c;超材料以其独特的性质吸引了众多科研人员的目光。其中&#xff0c;FDTD&#xff08;时域有限差分法&#xff09;超材料吸收器的吸收光谱更是研究的热门领域。今天&#xff0c;咱们就一起来深入探究一番。 什么是F…

作者头像 李华
网站建设 2025/12/23 20:56:27

无锡黑锋 HF1841 1MHz 超小型、高效率、同步升压DC-DC变换器技术解析

一、芯片核心定位HF1841 是一款采用同步整流技术的微型、高效率、固定频率升压&#xff08;Boost&#xff09;DC-DC变换器 其核心价值在于 高达95%的转换效率、1MHz的高开关频率 以及 仅60μA的超低静态电流 专为单节/双节碱性/镍氢电池或单节锂电供电的便携设备设计&#xff0…

作者头像 李华
网站建设 2025/12/24 4:39:23

探索电动汽车纵向速度MPC控制器

电动汽车纵向速度MPC控制器。 采用上层控制器和下层控制器。 目标为控制车辆的纵向速度&#xff0c;使其跟踪上期望纵向速度曲线。 ●上层控制器&#xff1a;控制方式为MPC控制器&#xff0c;输入为车辆纵向速度和纵向加速度&#xff0c;输出为期望加速度&#xff0c;并且对加速…

作者头像 李华
网站建设 2025/12/28 15:58:42

基于主从博弈理论的共享储能与综合能源微网优化运行研究复现

【文章复现】《基于主从博弈理论的共享储能与综合能源微网优化运行研究》 区别于网上常规烂大街代码&#xff0c;用自己逻辑进行修改复现 可根据要求进行扩展或改写在能源领域的研究中&#xff0c;基于主从博弈理论的共享储能与综合能源微网优化运行是个相当有趣且有深度的话题…

作者头像 李华
网站建设 2025/12/25 2:43:15

【毕业设计】基于springboot+vue的高校奖学金申报评定管理系统的设计基于springboot高校学生奖学金评定系统的设计与实现(源码+文档+远程调试,全bao定制等)

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

作者头像 李华
网站建设 2025/12/24 10:31:27

【毕业设计】基于springboot+vue的新能源汽车信息咨询服务设计和实现基于Java Web的新能源汽车信息咨询服务(源码+文档+远程调试,全bao定制等)

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

作者头像 李华