当前位置: 首页 > news >正文

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[] 一维数组
// 数组包含: 一维数组,多维数组, 交错数组

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


http://www.cnnetsun.cn/news/69804.html

相关文章:

  • 基于 Comsol 移动网格方法的激光熔池流动数值模拟
  • BLDC无刷直流电机Matlab仿真:转速电流双闭环控制及有感无感换相方式研究
  • [光学原理与应用-491]:水冷机、零气模块CDA、功率计等影响266皮秒紫外激光器的种子源1064nm功率稳定性结果的主要因素有哪些?
  • 昆仑通态MCGS与欧姆龙E5CC温控器通讯实战:PID模式及输出启停控制
  • 通达信〖逆势突破强牛〗指标公式 逆市环境中率先突破前期重要压力位 较强内在上涨动力
  • 基于扰动观测器的永磁同步电机(PMSM)模型预测控制(MPC)仿真探索
  • AEB联合仿真算法设计:Carsim2019.0+Matlab/Simulink2021a实现...
  • Java毕设选题推荐:基于springboot个人博客系统的设计与实现基于SpringBoot+Vue个人博客系统的设计与实现【附源码、mysql、文档、调试+代码讲解+全bao等】
  • Java毕设选题推荐:基于springboot停车场车位预约系统基于Java springboot停车场管理系统停车位预约【附源码、mysql、文档、调试+代码讲解+全bao等】
  • Java毕设选题推荐:基于springboot的无人化、线上化、数据化海洋馆预约系统的设计与实现【附源码、mysql、文档、调试+代码讲解+全bao等】
  • Ascend C高级API应用:InitGlobalMemory与Pad操作的底层原理
  • Java毕设选题推荐:基于Java Web的新能源汽车信息咨询服务基于SpringBoot+Vue的新能源汽车信息咨询服务的设计与实现【附源码、mysql、文档、调试+代码讲解+全bao等】
  • 开箱即用的 GoWind Admin|风行,企业级前后端一体中后台框架:OPA 集成指南:从原理到实践
  • Object.defineProperty和Proxy实现拦截的区别
  • 若依物联网
  • PSEN1抗体:如何揭示阿尔茨海默病致病机制与治疗新靶点?
  • Docker Engine 升级指南:保障容器安全的关键步骤
  • 基于zigbee灯光控制照明及色温调节系统的设计与实现(有完整资料)
  • 7、Python高级语法:描述器、属性与元编程实战
  • 【开题答辩全过程】以 基于java技术的校园一卡通系统的设计与实现为例,包含答辩的问题和答案
  • 11、Python 包与应用开发全解析
  • django基于智能推荐算法的全屋定制平台网站设计
  • 详谈:解释器模式(四)
  • 双Buck电路并联下的下垂控制与VDCM协同控制策略:增强直流微电网稳定性的仿真应用
  • Java 日期格式化方法:SimpleDateFormat 和 DateTimeFormatter
  • GPU 渲染模式:OpenGL ANGLE Vulkan 的选择与切换(工程师不踩坑指南)
  • 【dz-968】室内空气监测系统设计
  • 【接口测试】5_接口测试基础 _接口文档解析
  • 最近在搞风光储联合发电系统的仿真,发现直驱风机和光伏逆变器的配合特别有意思。今天就跟大伙儿唠唠这个模型搭建时遇到的坑,顺便分享几个关键模块的调参心得
  • 【保姆级教程】手把手带你读懂AI落地架构图!AI产品经理必备,每个节点都给你讲透!