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

C#中字符串方法

字符串属性:Lenght  长度比最大索引大1 

string str = "frerfgd";
1.可以通过索引,获取字符串中的某一个字符,下标“0,1.......”
Console.WriteLine(str[0]);//f
Console.WriteLine(str[1]);//r
//Console.WriteLine(str[20]); 下标越界“不存在的下标”,报错
Console.WriteLine(str.Length);//7  获取字符串长度“获取字符的个数” 
Console.WriteLine(str.Length-1);//6

字符串遍历

 for (int i = 0; i < str.Length; i++){Console.WriteLine(str[i]);//frerfgd}

 字符串内置了很多的API(函数), API就是一个对象里面提供的属性或提供的方法,别人准备好的直接拿来用。

字符串可以通过索引来访问,如:str[index],因为string类中定义一个索引器。

1. Concat( )  拼接字符串

 String.Concat(字符串1+ 字符串n) ,参数可以是多个,使用逗号隔开。

 string s1 = "hello", s2 = "你好", s3 = "123";int num = 1000;//①字符串拼接string s4 = s1 + s2 + s3;Console.WriteLine(s4);//hello你好123//②
//Concat()拼接字符串,参数可以是多个,使用逗号隔开。
s4 = string.Concat(s1, s2, s3, num);
Console.WriteLine(s4);//hello你好1231000

2.Contains( ):

字符串1.Contains(字符串2) ,判断参数是否在字符串中存在,返回布尔值,使用bool值去接收。

 bool b = s4.Contains(s1);//bool b1 = s4.Contains("13"); //false  不相邻会报错Console.WriteLine(b);//true

3.  CopyTo(c1,c2,c3,c4) :

字符串1.CopyTo(0,空数组,0,5) ,从字符串中复制一部分字符到一个字符数组中

Console.WriteLine(s4);//hello你好1231000
//声明了一个长度为10的字符数组
char[] chars = new char[10];
//CopyTo(c1,c2,c3,c4) 从字符串中复制一部分字符到一个字符数组中
//参数(1,字符串开始复制的下标。2.字符数组。3.插入字符数组的起始下标。4.复制的个数。)  2.字符数组一般推荐使用Length,从数组末尾插入一个,不会把别的给代替了
s4.CopyTo(1, chars, 0, 5);
//将char类型数组转换为字符串。
string charStr = new string(chars);
Console.WriteLine(charStr);//ello你

4. StartsWith( ):

字符串1.StartsWith("字符串") ,判断参数字符,在字符串中是否是开头字符,返回布尔值。

string names = "张杰毛不易张三毛晓彤CC";
Console.WriteLine(names.StartsWith("张"));//true
Console.WriteLine(names.StartsWith("毛"));//false
Console.WriteLine(names.StartsWith("张毛"));//false

5. EndsWith( ):

字符串1.EndsWith("字符串") ,判断参数字符,在字符串中是否是结束字符,返回布尔值。

EndsWith() 判断参数字符,在字符串中是否是结束字符,返回布尔值。
Console.WriteLine(names.EndsWith("易"));//true
Console.WriteLine(names.EndsWith("毛"));//false

6. Equals( )

字符串1.Equals("字符串") ,判断源字符串(谁调用的)和 参数字符串是否完全相等 ==,相等返回true,不相等返回false。

string names = "张杰毛不易张三毛晓彤CC";
Console.WriteLine(names.Equals(names));//true
Console.WriteLine(names.Equals(s4));//false

7. IndexOf( )

字符串1. IndexOf("字符串") ,查询参数在字符串中第一次出现的下标,找不到返回-1

Console.WriteLine(names.IndexOf("张"));//0
Console.WriteLine(names.IndexOf("毛"));//2
Console.WriteLine(names.IndexOf("李"));//-1 不存在返回-1
Console.WriteLine(names.IndexOf("c"));//-1 区分大小写
Console.WriteLine(names.IndexOf("C"));//10

8. LastIndexOf( )

字符串1.Lastlndex0f("字符串") ,查询参数在字符串中最后一次出现的下标,找不到返回-1

Console.WriteLine(names.LastIndexOf("张"));//5
Console.WriteLine(names.LastIndexOf("毛"));//7
Console.WriteLine(names.LastIndexOf("李"));//-1

9. 会忽略 大小写进行查询

string str1 = "aseafefAbDASFBa";
Console.WriteLine(str1.IndexOf("b")); //8
// 会忽略 大小写进行查询
Console.WriteLine(str1.IndexOf("b", StringComparison.OrdinalIgnoreCase)); //8
Console.WriteLine(str1.IndexOf("a", 3)); //3, 从指定的索引位置开始查询指定字符
Console.WriteLine(str1.LastIndexOf("a", 3)); //3,从后向前查询参数字符串首次出现的索引位置。

10. IndexOfAny( char[ ] )

字符串1.lndex0fAny(字符类型的数组) ,从前向后查询源字符串中首次出现的指定字符数组中任意一个字符的位置

Console.WriteLine(str1.IndexOfAny(new char[] { 'b', '1', '2', 'a' }));//0

11. LastIndexOfAny( char[ ] )

字符串1.Lastlndex0fAny(字符类型的数组),从后向查前询源字符串中首次出现的指定字符数组中任意一个字符的位置

Console.WriteLine(str1.LastIndexOfAny(new char[] { 'b', '1', '2', 'a' }));//14

12. Insert( )

插入:字符串1.Insert(插入索引,插入的字符串) ,在指定下标的位置插入指定的字符串,形成新的字符串。

string oldString = "hello";
string newStr4 = oldString.Insert(1, "AAAA");
Console.WriteLine(newStr4);// hAAAAello
Console.WriteLine(oldString);//hello

13. Remove( )

字符串1.Remove(索引,删除个数) 

删除,一个参数从指定下标开始删除到字符串末尾,返回新的字符串

string newStr5 = oldString.Remove(1, 3);
Console.WriteLine(newStr5);//ho
Console.WriteLine(oldString);//hello

14. Replace( )

字符串1.Replace (old, new)

替换,新旧字符串替换,也可以替换某个字符,返回新的字符串

string newStr6 = oldString.Replace("ll", "AA");
Console.WriteLine(newStr6);//heAAo
Console.WriteLine(oldString);//hellostring newStr7 = oldString.Replace('l', 'A');
Console.WriteLine(newStr7);//heAAo
Console.WriteLine(oldString);//hello

15. IsNullOrEmpty( )

判断参数是否是Null 或者 是Empty"空字符串"和WhiteSpace空格,是返回true,不是返回false。

string str2 = "";
string names = "张杰毛不易张三毛晓彤CC";
Console.WriteLine(string.IsNullOrEmpty(str2));//true
Console.WriteLine(string.IsNullOrEmpty(names));//false
Console.WriteLine(string.IsNullOrEmpty(null));//True

16. Join(参数1,参数2)

字符串拼接:("分隔符",数组) 指定什么东西把数组拼接成字符串

char[] cs = new char[] { 'b', '1', '2', 'a' };
string[] ss = new string[] { "张三", "李四", "王五" };
Console.WriteLine(string.Join("-", ss));//张三-李四-王五
Console.WriteLine(string.Join("=》", cs));//b=》1=》2=》a

17. SubString( )

截取字符串。参数1:起始索引 参数:截取长度

string[] strs4 = new string[] { "你好", "hello", "world" };
Console.WriteLine(string.Concat(strs4));//你好helloworld//SubString()截取字符串。参数1:起始索引 参数:截取长度
Console.WriteLine("hello".Substring(1, 3));//ell

18. ToUpper( ) 将字母切换为大写

      ToLower()  将字母切换为小写

//ToUpper( ) 将字母切换为大写
Console.WriteLine("hello".ToUpper());//HELLO
Console.WriteLine("HELLO".ToUpper());//HELLO
Console.WriteLine("中文".ToUpper());//中文//ToLower()  将字母切换为小写
Console.WriteLine("Hello".ToLower());//hello
Console.WriteLine("HELLO".ToLower());//hello
Console.WriteLine("中文".ToLower());//中文

19. ToString( )平时省略

Console.WriteLine("hello");//hello
Console.WriteLine("hello".ToString());//hello

20. Trim( ) 去除字符串两端的空格,但不会去除中间的空格。

      TrimEnd( )去除右侧的空白

     TrimStart( )去除左侧的空白

Console.WriteLine("    hel    lo    ".Trim());//hel    lo
Console.WriteLine("    hel    lo    ".TrimEnd().TrimStart());//hel    lo

21. ToCharArray( )

字符串1.ToCharArray(开始的索引,数组中的个数)不传参默认整个字符串,将一个字符串转换为char数组

char[] char2 = names.ToCharArray();
for (int i = 0; i < char2.Length; i++)
{Console.WriteLine($"{char2[i]}");
}

22. Split( " , " )

字符串1.Split("分隔符") ("自定义多个分割符","")

分割,从指定的参数字符位置开始分割,返回一个分割后对的数组。

names = "张杰,毛不易,张三,毛晓彤";
string[] arrStr = names.Split(',');//一定要有指定字符,不然没办法切割成功
for (int i = 0; i < arrStr.Length; i++)
{Console.WriteLine($"{arrStr[i]}");
}

23. SubString( )

截取字符串。参数1:起始索引 参数:截取长度

string[] strs4 = new string[] { "你好", "hello", "world" };
Console.WriteLine("hello".Substring(1, 3));//ell

24. string.Format( ) 格式化

//字符串格式化
Console.WriteLine("姓名{0},年龄{1},性别{2}", "张三", 30, true); //姓名张三,年龄30,性别True
Console.WriteLine("{0},{1}", "张三", 30, true);//张三,30Console.WriteLine(string.Format("姓名{0},年龄{1},性别{2}", "张三", 30, true)); //姓名张三,年龄30,性别True
Console.WriteLine(string.Format("{0,10}", "张三", 30, true));//张三  一个数据至少有几个字符

25. string.Format( )和ToString( ): 字符串格式化

 参考:https://learn.microsoft.com/zh-cn/dotnet/standard/base-types/standard-numeric-format-strings

// C货币   {0:C3},其中0表示参数索引,C3表示显示成货币,并保留3位小数
Console.WriteLine(string.Format("{0:C3}----{1:c2}", 12, 13));//¥12.000----¥13.00// N数字  显示成数字,并保留3位小数
Console.WriteLine(string.Format("{0:N3}", 12));//12.000// P百分比,显示成百分比,保留3位小数
Console.WriteLine(string.Format("{0:P3}", 0.12));//12.000%// X,Hex 16进制   0-9,A,B,C,D,E,F  显示成16进制
Console.WriteLine(string.Format("{0:X}", 12));//CConsole.WriteLine(12.ToString("N1"));//12.0
Console.WriteLine(12.ToString("C1"));//¥12.0double num1 = .12D;
double num2 = 0.12D;
Console.WriteLine(0.12.ToString("P3"));//12.000%Console.WriteLine(12.ToString("X"));//C

相关文章:

C#中字符串方法

字符串属性&#xff1a;Lenght 长度比最大索引大1 string str "frerfgd"; 1.可以通过索引&#xff0c;获取字符串中的某一个字符&#xff0c;下标“0&#xff0c;1.......” Console.WriteLine(str[0]);//f Console.WriteLine(str[1]);//r //Console.WriteLine(s…...

Python毕业设计选题:基于django+vue的二手电子设备交易平台设计与开发

开发语言&#xff1a;Python框架&#xff1a;djangoPython版本&#xff1a;python3.7.7数据库&#xff1a;mysql 5.7数据库工具&#xff1a;Navicat11开发软件&#xff1a;PyCharm 系统展示 管理员登录 管理员功能界面 用户管理 设备类型管理 设备信息管理 系统首页 设备信息…...

【愚公系列】《微信小程序与云开发从入门到实践》059-迷你商城小程序的开发(加入购物车与创建订单功能开发)

标题详情作者简介愚公搬代码头衔华为云特约编辑,华为云云享专家,华为开发者专家,华为产品云测专家,CSDN博客专家,CSDN商业化专家,阿里云专家博主,阿里云签约作者,腾讯云优秀博主,腾讯云内容共创官,掘金优秀博主,亚马逊技领云博主,51CTO博客专家等。近期荣誉2022年度…...

Mac Android studio :gradle 配置、代理设置、及各种环境变量配置;

mac 安装 AS&#xff0c;最烦人的就是这些配置了&#xff08;吐槽一下&#xff1a;这软件真是垃圾的一批&#xff0c;同样的代码换了电脑就没法用&#xff0c;比 vscode 甚至比低评分的xcode还差劲&#xff01;&#xff09; --------------------- 一、 gradle 下载及环境变量…...

unity——Preject3——开始界面拼面板

目录 1.创建panel&#xff0c;去掉panel自带的image&#xff0c;自己加一个image&#xff0c;使用锚点分配好 2.锚点&#xff08;快捷键点击后 ALTShift&#xff09; 锚点是什么&#xff1f; 锚点的实际例子 例子1&#xff1a;固定在父容器的中心 例子2&#xff1a;对齐到…...

【达梦数据库(Oracle模式)】如何将视图中的数据导出

在某些情况下&#xff0c;我们需要将生产环境某个模式下的数据导入到开发电脑中&#xff0c;因为正式环境无法连接外网数据。 方式一&#xff1a;将视图查询出来&#xff0c;然后右键导出所有查询结果&#xff08;不推荐&#xff09; 优点&#xff1a;方便快捷 缺点&#xff1…...

GB44495-2024 汽车整车信息安全技术要求 - V2X部分前置要求

背景 GB 44495-2024《汽车整车信息安全技术要求》中关于V2X&#xff08;车与外界通信&#xff09;的部分&#xff0c;主要关注于通信安全要求&#xff0c;旨在确保车辆在与外部设备进行数据交互时的信息安全。其测试大致可分为消息层&#xff08;数据无异常&#xff09;、应用…...

FastAPI 应用的容器化与 Docker 部署:提升性能与可扩展性

FastAPI 应用的容器化与 Docker 部署&#xff1a;提升性能与可扩展性 目录 &#x1f433; 使用 Docker 容器化 FastAPI 应用⚙️ 使用 Docker Compose 管理多个服务的部署&#x1f680; 在 Docker 容器中部署与运行 FastAPI 应用 1. &#x1f433; 使用 Docker 容器化 FastAPI…...

QT入门的一些吐槽

QT入门的一些吐槽 看了网上的一些介绍QT的课程&#xff0c;看了一些讲述qt的书籍&#xff0c;然而再想自己做一个项目的时候&#xff0c;却发现我好像什么都不会&#xff0c;QT对我来说就是一个黑盒子。 我只会&#xff1a; 使用QT Creator创建一个项目&#xff0c;再UI文件中…...

4.Spring AI Prompt:与大模型进行有效沟通

1.什么是提示词 在人工智能领域&#xff0c;提示词&#xff08;Prompt&#xff09;扮演着至关重要的角色&#xff0c;它宛如一把精准的钥匙&#xff0c;为 AI 大模型开启理解之门。作为向模型输入的关键信息或引导性语句&#xff0c;提示词能够助力模型迅速洞悉问题需求&#…...

深入内核讲明白Android Binder【二】

深入内核讲明白Android Binder【二】 前言一、Binder通信内核源码整体思路概述1. 客户端向服务端发送数据流程概述1.1 binder_ref1.2 binder_node1.3 binder_proc1.4 binder_thread 2. 服务端的binder_node是什么时候被创建的呢&#xff1f;2.1 Binder驱动程序为服务创建binder…...

Python基于Django的图像去雾算法研究和系统实现(附源码,文档说明)

博主介绍&#xff1a;✌IT徐师兄、7年大厂程序员经历。全网粉丝15W、csdn博客专家、掘金/华为云//InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精彩专栏推荐订阅&#x1f447;&#x1f3…...

TCP 连接状态标识 | SYN, FIN, ACK, PSH, RST, URG

注&#xff1a;本文为“TCP 连接状态标识”相关文章合辑。 TCP 的状态&#xff1a;SYN, FIN, ACK, PSH, RST, URG 简介及 ACK 确认机制 llzhang_fly 于 2020-09-19 05:25:26 发布 1、TCP 的状态 FLAGS 字段状态 在 TCP 层&#xff0c;有个 FLAGS 字段&#xff0c;这个字段有…...

WXML模版语法-事件绑定

知识点1&#xff1a;什么是事件 事件是渲染层到逻辑层的通讯方式。通过事件可以将用户在渲染层产生的行为&#xff0c;反馈到逻辑层进行业务的处理。 知识点2&#xff1a;小程序中常用的事件 类型绑定方式事件描述tapbindtap或bind:tap手指触摸后马上离开&#xff0c;类似于…...

楚慧杯Web

WEB1 计算器 import requests rrequests.session() data{"answer":0} url"" for i in range(30):if i0:rrequests.get(url)dr.textdd.split(":")[22][1:].split("<br>")[0]data["answer"]str(eval(d))print(eval(d)…...

工商业储能电站能量管理本地系统及多站点云平台

一、储能站就地监控 Acre1-2000MG储能能量管理系统是针对工商业储能电站研制的本地化能量管理系统&#xff0c;可实现了储能电站的数据采集、数据处理、数据存储、数据查询与分析、可视化监控、报警管理、统计报表、策略管理、历史曲线等功能。其中策略管理&#xff0c;支持多…...

HTML标签笔记

黑马程序员视频地址&#xff1a;黑马程序员前端JavaScript入门到精通全套视频教程https://www.bilibili.com/video/BV1Y84y1L7Nn?vd_source0a2d366696f87e241adc64419bf12cab&spm_id_from333.788.videopod.episodes 标题与段落 标题 <h1>~<h6> 段落 <p…...

pthread_create函数

函数原型 pthread_create 是 POSIX 线程&#xff08;pthread&#xff09;库中的一个函数&#xff0c;用于在程序中创建一个新线程。 #include <pthread.h>int pthread_create(pthread_t *thread, const pthread_attr_t *attr,void *(*start_routine) (void *), void *a…...

C# 并发和并行的区别--16

目录 并发和并行 一.并发 定义 特点 代码示例 代码解释 二.并行 定义 特点 在C#中的体现 代码示例 代码解释 三.并发和并行的区别 四 .如何在C#中选择并发还是并行 1.考虑任务类型 2.代码示例 3.注意事项 五.总结 并发和并行 在编程领域,并发和并行是两个密切…...

Java日志配置

1.导入依赖 <dependency><groupId>org.apache.logging.log4j</groupId><artifactId>log4j-core</artifactId><version>2.23.1</version></dependency><dependency><groupId>org.apache.logging.log4j</groupI…...

Qt/C++开发监控GB28181系统/取流协议/同时支持udp/tcp被动/tcp主动

一、前言说明 在2011版本的gb28181协议中&#xff0c;拉取视频流只要求udp方式&#xff0c;从2016开始要求新增支持tcp被动和tcp主动两种方式&#xff0c;udp理论上会丢包的&#xff0c;所以实际使用过程可能会出现画面花屏的情况&#xff0c;而tcp肯定不丢包&#xff0c;起码…...

树莓派超全系列教程文档--(62)使用rpicam-app通过网络流式传输视频

使用rpicam-app通过网络流式传输视频 使用 rpicam-app 通过网络流式传输视频UDPTCPRTSPlibavGStreamerRTPlibcamerasrc GStreamer 元素 文章来源&#xff1a; http://raspberry.dns8844.cn/documentation 原文网址 使用 rpicam-app 通过网络流式传输视频 本节介绍来自 rpica…...

在rocky linux 9.5上在线安装 docker

前面是指南&#xff0c;后面是日志 sudo dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo sudo dnf install docker-ce docker-ce-cli containerd.io -y docker version sudo systemctl start docker sudo systemctl status docker …...

CentOS下的分布式内存计算Spark环境部署

一、Spark 核心架构与应用场景 1.1 分布式计算引擎的核心优势 Spark 是基于内存的分布式计算框架&#xff0c;相比 MapReduce 具有以下核心优势&#xff1a; 内存计算&#xff1a;数据可常驻内存&#xff0c;迭代计算性能提升 10-100 倍&#xff08;文档段落&#xff1a;3-79…...

SpringCloudGateway 自定义局部过滤器

场景&#xff1a; 将所有请求转化为同一路径请求&#xff08;方便穿网配置&#xff09;在请求头内标识原来路径&#xff0c;然后在将请求分发给不同服务 AllToOneGatewayFilterFactory import lombok.Getter; import lombok.Setter; import lombok.extern.slf4j.Slf4j; impor…...

Go语言多线程问题

打印零与奇偶数&#xff08;leetcode 1116&#xff09; 方法1&#xff1a;使用互斥锁和条件变量 package mainimport ("fmt""sync" )type ZeroEvenOdd struct {n intzeroMutex sync.MutexevenMutex sync.MutexoddMutex sync.Mutexcurrent int…...

解析奥地利 XARION激光超声检测系统:无膜光学麦克风 + 无耦合剂的技术协同优势及多元应用

在工业制造领域&#xff0c;无损检测&#xff08;NDT)的精度与效率直接影响产品质量与生产安全。奥地利 XARION开发的激光超声精密检测系统&#xff0c;以非接触式光学麦克风技术为核心&#xff0c;打破传统检测瓶颈&#xff0c;为半导体、航空航天、汽车制造等行业提供了高灵敏…...

医疗AI模型可解释性编程研究:基于SHAP、LIME与Anchor

1 医疗树模型与可解释人工智能基础 医疗领域的人工智能应用正迅速从理论研究转向临床实践,在这一过程中,模型可解释性已成为确保AI系统被医疗专业人员接受和信任的关键因素。基于树模型的集成算法(如RandomForest、XGBoost、LightGBM)因其卓越的预测性能和相对良好的解释性…...

未授权访问事件频发,我们应当如何应对?

在当下&#xff0c;数据已成为企业和组织的核心资产&#xff0c;是推动业务发展、决策制定以及创新的关键驱动力。然而&#xff0c;未授权访问这一隐匿的安全威胁&#xff0c;正如同高悬的达摩克利斯之剑&#xff0c;时刻威胁着数据的安全&#xff0c;一旦触发&#xff0c;便可…...

构建Docker镜像的Dockerfile文件详解

文章目录 前言Dockerfile 案例docker build1. 基本构建2. 指定 Dockerfile 路径3. 设置构建时变量4. 不使用缓存5. 删除中间容器6. 拉取最新基础镜像7. 静默输出完整示例 docker runDockerFile 入门syntax指定构造器FROM基础镜像RUN命令注释COPY复制ENV设置环境变量EXPOSE暴露端…...