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

C#,入门教程(13)——字符(char)及字符串(string)的基础知识

上一篇:

C#,入门教程(12)——数组及数组使用的基础知识icon-default.png?t=N7T8https://blog.csdn.net/beijinghorn/article/details/123918227

字符串的使用与操作是必需掌握得滚瓜烂熟的编程技能之一!!!!!

C#语言实现预定义了多种基础的数据类型。

字符 Char、字符串String 与 数学Math 是 C# 系统级别的、预定义的数据类型。

其中 String 专门用于字符串的存储与处理,一般写作  string

本文介绍 string 的常用使用方法。

一、字符串的定义 string

与其他数据类型没有太大的差别。

// 字符串以一对双引号开始与结束
string a = "hello";// 如果字符串内有双引号
string b = "hello\"";// 或者
string c = @"hello""";// 字符创数组
string[] WeekDaysChinese = new string[7] {"周一", "周二", "周三", "周四", "周五", "周六", "周日",
};

二、字符串的定位、遍历 Length IndexOf

1、字符串长度 Length 与 截取字串 Substring

字符串的长度就是字符(英文、数字与汉字都算一个)个数。

// 字符串的遍历
string helloString = "hello!你好!";
string htmlString = "";
for(int i=0; i<helloString.Length; i++)
{// 截取 i 开始的一个字(母)htmlString += "Char(" + i + "):" + helloString.Substring(i,1) + "<br>";
}
WebBrowser1.DocumentText = htmlString;

2、正向定位与反向定位 IndexOf LastIndexOf

获取某个字或字串的位置(都从头算起,0起步)。

string helloString = "Worldlrow!";// 返回 2
int posFirst = helloString.Indexof("r");// 返回 6
int posSecond = helloString.LastIndexof("r");

三、子串 StartsWith Contains EndsWith

string[] nameString = new string[] { /* 为保护隐私,此处省略很多双括号括起来的名字,请自行补上。 */ 
};// 遍历每一个名字
// 找出隔壁老王;
// 含有 八 字的家伙;
// 名字以 蛋 结尾的活计;
foreach(string name in nameString)
{if(name.StartsWith("王")) {;}if(name.Contains("八")) {;}if(name.EndsWith("蛋")) {;}
}

四、字符串的整理与截取 Trim

字符串经常前后会留下空格、换行符、制表符等等,干扰计算。

字符串处理之前,经常做的就是清理前后的空格及一些特殊符号。

// 含有多余字符的字符串
string longString = "   hello world    ";// 干净的字符串 hello world
string clearString = longString.Trim();// Trim 也支持删除前后特定的字或字母
string banner = "*** Much Ado About Nothing ***";
string resultNoStar = banner.Trim('*');// 或一些特定字或字母
char[] charsToTrim = { '*', ' ', '\''};
string result = banner.Trim(charsToTrim);

五、字符串的大小写转换 ToUpper ToLower

string sourceString = "abshah1232-1kDDsda";
string lowerString = sourceString.ToLower();
string upperString = sourceString.ToUpper();

六、字符串的分解与合并 Split Join

先看一个去掉多余空格的实例:

string sourceString = "  hello   world is   my first app.  ";
string reault = String.Join(" ", sourceString.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries));

一句话就去掉了多余的空格!

分解开来的代码是:

string sourceString = "  hello   world is   my first app.  ";// 用 split 将字符串以 空格为分割字母 分割成 字符串数组
string[] arrayString = sourceString.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);// 用空格将字符串数组连接成字符串
string result = String.Join(" ", arrayString);

建议用后面的一个写法。

Split 是很常用的技能,对于编程者而言如同学生的计算器,必须熟练掌握!!!!

// 读取文件的全部内容
string bufFile = File.ReadAllText(filename);// 将文件的内容分解成行
string[] bufLines = buf.Split(new char[] { '\n' } , StringSplitOptions.RemoveEmptyEntries);// 依次处理各行
for(int i=0; i<bufLines.Length; i++)
{if(bufLines[i].Trim().Length < 1) continue;;
}

七、字符串替换 Replace

Replace 其实是很复杂的函数。

咱们先了解其常用的简单的用法。

string worldString = "hello world";string chinaString = worldString.Replace("World","China");

更复杂的字符串与其他数据类型的转换后面再讲。

下一篇:

C#,入门教程(14)——字符串与其他数据类型的转换icon-default.png?t=N7T8https://blog.csdn.net/beijinghorn/article/details/124004562

相关文章:

C#,入门教程(13)——字符(char)及字符串(string)的基础知识

上一篇&#xff1a; C#&#xff0c;入门教程(12)——数组及数组使用的基础知识https://blog.csdn.net/beijinghorn/article/details/123918227 字符串的使用与操作是必需掌握得滚瓜烂熟的编程技能之一&#xff01;&#xff01;&#xff01;&#xff01;&#xff01; C#语言实…...

Tracert 与 Ping 程序设计与实现(2024)

1.题目描述 了解 Tracert 程序的实现原理&#xff0c;并调试通过。然后参考 Tracert 程序和计算机网络教材 4.4.2 节&#xff0c; 计算机网络 课程设计指导书 2 编写一个 Ping 程序&#xff0c;并能测试本局域网的所有机器是否在线&#xff0c;运行界面如下图所示的 QuickPing …...

浅谈接口自动化测试

前言 自动化测试&#xff0c;算是近几年比较火热的一个话题&#xff0c;当然&#xff0c;更是软件测试未来的一个发展趋势。未来&#xff0c;功能测试等非核心的测试工作&#xff0c;都将被外包。 想要在软件测试这个行业继续前行&#xff0c;就必须拥有核心竞争力&#xff0…...

Hyperledger Fabric 核心概念与组件

要理解超级账本 Fabric 的设计&#xff0c;首先要掌握其最基本的核心概念与组件&#xff0c;如节点、交易、排序、共识、通道等。 弄清楚这些核心组件的功能&#xff0c;就可以准确把握 Fabric 的底层运行原理&#xff0c;深入理解其在架构上的设计初衷。知其然&#xff0c;进…...

【C语言题解】 | 101. 对称二叉树

101. 对称二叉树 101. 对称二叉树代码 101. 对称二叉树 这个题目要求判断该二叉树是否为对称二叉树&#xff0c;此题与上一题&#xff0c;即 100. 相同的树 这个题有异曲同工之妙&#xff0c;故此题可借鉴上题。 我们先传入需要判断二叉树的根节点&#xff0c;通过isSameTree()…...

Baumer工业相机堡盟工业相机如何通过NEOAPI SDK实现相机掉线自动重连(C#)

Baumer工业相机堡盟工业相机如何通过NEOAPI SDK实现相机掉线自动重连&#xff08;C#&#xff09; Baumer工业相机Baumer工业相机的掉线自动重连的技术背景通过PnP事件函数检查Baumer工业相机是否掉线在NEOAPI SDK里实现相机掉线重连方法&#xff1a;工业相机掉线重连测试演示图…...

[Vulnhub靶机] DriftingBlues: 5

[Vulnhub靶机] DriftingBlues: 5靶机渗透思路及方法&#xff08;个人分享&#xff09; 靶机下载地址&#xff1a; https://download.vulnhub.com/driftingblues/driftingblues5_vh.ova 靶机地址&#xff1a;192.168.67.24 攻击机地址&#xff1a;192.168.67.3 一、信息收集 …...

26 数字验证

效果演示 实现了一个简单的数字密码输入表单&#xff0c;用户需要输入一个4位数字密码来验证身份。表单包含一个标题、描述、输入字段、两个按钮和一个关闭按钮。输入字段是一个4位数字密码&#xff0c;用户需要在每个输入框中输入数字来输入密码。两个按钮分别是“验证”和“清…...

echarts - xAxis.type设置time时该如何使用formatter的分级模板

echarts 文档中描述了x轴的多种类型 一、type: ‘value’ ‘value’ 数值轴&#xff0c;适用于连续数据。 此时x轴数据是从零开始&#xff0c;有数据大小的区分。 【注意】 因为xAxis.data是为category服务的&#xff0c;所以xAxis.data里面设置的数据无效。 二、type: ‘ca…...

【代码随想录】刷题笔记Day47

前言 又过了个愉快的周末~大组会终于不用开了&#xff0c;理论上已经可以回家了&#xff01;但是我多留学校几天吧&#xff0c;回家实在太无聊了&#xff0c;也没太多学习的氛围 198. 打家劫舍 - 力扣&#xff08;LeetCode&#xff09; dp[i]含义 考虑下标i&#xff08;包括…...

6.1 截图工具HyperSnap6简介

图片是组成多媒体作品的基本元素之一&#xff0c;利用图片可以增强多媒体作品的亲和力和说说服力。截取图片最简单的方法是直接按下键盘上的“PrintScreen”键截取整个屏幕或按下“AltPrintScreen”组合键截取当前活动窗口&#xff0c;然后在画笔或者其它的图片处理软件中进行剪…...

stable diffusion 人物高级提示词(二)衣物、身材

一、衣服大类 英文中文Shirt衬衫Blouse女式衬衫Dress连衣裙Skirt裙子Pants裤子Jeans牛仔裤Swimsuit泳衣Underwear内衣Bra文胸Panties内裤Stockings长筒袜Shoes鞋子Socks袜子 二、细分分类 dress 是连衣裙&#xff1a; 英文解释Formal Dress正式礼服&#xff0c;通常用于正式…...

外包做了1个月,技术退步一大半了。。。

先说一下自己的情况&#xff0c;本科生&#xff0c;20年通过校招进入深圳某软件公司&#xff0c;干了接近4年的功能测试&#xff0c;今年年初&#xff0c;感觉自己不能够在这样下去了&#xff0c;长时间呆在一个舒适的环境会让一个人堕落!而我已经在一个企业干了四年的功能测试…...

docker-compose常用命令及.yaml配置模板

1、docker-compose常用命令&#xff1a; docker-compose -f mysql-docker-compose.yaml up -d docker-compose -f mysql-docker-compose.yaml downdocker-compose的常用命令包括&#xff1a; docker-compose up&#xff1a;启动并运行Compose文件中的服务。 docker-compose st…...

工作随机:OEM(13.5)报错代理无法访问

文章目录 前言一、问题排查二、重启主机agent1.定位主机安装位置2.查看并启动agent3.OEM检查 前言 今早接到反馈&#xff0c;在客户部署的OEM&#xff08;版本 13.5&#xff09;监控失效&#xff0c;提示代理无法访问&#xff0c;无法访问的除了数据库以外还有主机都显示数据不…...

Pruning Papers

[ICML 2020] Rigging the Lottery: Making All Tickets Winners 整个训练过程中mask是动态的&#xff0c;有drop和grow两步&#xff0c;drop是根据权重绝对值的大小丢弃&#xff0c;grow是根据剩下激活的权重中梯度绝对值生长没有先prune再finetune/retrain的两阶段过程 Laye…...

C#COM对象的资源释放

在C#中使用COM对象时&#xff0c;由于COM对象遵循引用计数&#xff08;Reference Counting&#xff09;的管理方式&#xff0c;当COM对象的引用计数为0时&#xff0c;系统才会真正释放该COM对象所占用的资源。然而&#xff0c;在.NET环境下&#xff0c;CLR&#xff08;Common L…...

了解Apache 配置与应用

本章内容 理解 Apache 连接保持 掌握 Apache 的访问控制 掌握 Apache 日志管理的方法 Apache HTTP Server 之所以受到众多企业的青睐&#xff0c;得益于其代码开源、跨平台、功能 模块化、可灵活定制等诸多优点&#xff0c;不仅性能稳定&#xff0c;在安全性方面的表现也十分…...

悟的复杂度分析

复杂度分析&#xff1a; 时间复杂度&#xff08;算法中的基本操作的执行次数&#xff09;&#xff1b; 空间复杂度。 时间复杂度&#xff1a; 实际上我们计算时间复杂度时&#xff0c;我们其实并不需要计算准确的执行次数&#xff0c;只需要大概的执行次数&#xff0c;因此我们…...

《网络是怎样连接的》2.5节图表(自用)

图5.1&#xff1a;ip包结构 图5.2&#xff1a;ip网络包的传输方式 1.以太网的部分也可以替换成其他的东西&#xff0c;例如无线局域网、ADSL、FTTH等&#xff0c;它们都可以替代以太网的角色帮助IP协议来传输网络包 2.根据ARP协议&#xff0c;客户端可以根据ip地址得到下一个路…...

逻辑回归:给不确定性划界的分类大师

想象你是一名医生。面对患者的检查报告&#xff08;肿瘤大小、血液指标&#xff09;&#xff0c;你需要做出一个**决定性判断**&#xff1a;恶性还是良性&#xff1f;这种“非黑即白”的抉择&#xff0c;正是**逻辑回归&#xff08;Logistic Regression&#xff09;** 的战场&a…...

2024年赣州旅游投资集团社会招聘笔试真

2024年赣州旅游投资集团社会招聘笔试真 题 ( 满 分 1 0 0 分 时 间 1 2 0 分 钟 ) 一、单选题(每题只有一个正确答案,答错、不答或多答均不得分) 1.纪要的特点不包括()。 A.概括重点 B.指导传达 C. 客观纪实 D.有言必录 【答案】: D 2.1864年,()预言了电磁波的存在,并指出…...

【论文笔记】若干矿井粉尘检测算法概述

总的来说&#xff0c;传统机器学习、传统机器学习与深度学习的结合、LSTM等算法所需要的数据集来源于矿井传感器测量的粉尘浓度&#xff0c;通过建立回归模型来预测未来矿井的粉尘浓度。传统机器学习算法性能易受数据中极端值的影响。YOLO等计算机视觉算法所需要的数据集来源于…...

【Oracle】分区表

个人主页&#xff1a;Guiat 归属专栏&#xff1a;Oracle 文章目录 1. 分区表基础概述1.1 分区表的概念与优势1.2 分区类型概览1.3 分区表的工作原理 2. 范围分区 (RANGE Partitioning)2.1 基础范围分区2.1.1 按日期范围分区2.1.2 按数值范围分区 2.2 间隔分区 (INTERVAL Partit…...

【Linux手册】探秘系统世界:从用户交互到硬件底层的全链路工作之旅

目录 前言 操作系统与驱动程序 是什么&#xff0c;为什么 怎么做 system call 用户操作接口 总结 前言 日常生活中&#xff0c;我们在使用电子设备时&#xff0c;我们所输入执行的每一条指令最终大多都会作用到硬件上&#xff0c;比如下载一款软件最终会下载到硬盘上&am…...

【C++】纯虚函数类外可以写实现吗?

1. 答案 先说答案&#xff0c;可以。 2.代码测试 .h头文件 #include <iostream> #include <string>// 抽象基类 class AbstractBase { public:AbstractBase() default;virtual ~AbstractBase() default; // 默认析构函数public:virtual int PureVirtualFunct…...

轻量级Docker管理工具Docker Switchboard

简介 什么是 Docker Switchboard &#xff1f; Docker Switchboard 是一个轻量级的 Web 应用程序&#xff0c;用于管理 Docker 容器。它提供了一个干净、用户友好的界面来启动、停止和监控主机上运行的容器&#xff0c;使其成为本地开发、家庭实验室或小型服务器设置的理想选择…...

鸿蒙Navigation路由导航-基本使用介绍

1. Navigation介绍 Navigation组件是路由导航的根视图容器&#xff0c;一般作为Page页面的根容器使用&#xff0c;其内部默认包含了标题栏、内容区和工具栏&#xff0c;其中内容区默认首页显示导航内容&#xff08;Navigation的子组件&#xff09;或非首页显示&#xff08;Nav…...

Docker、Wsl 打包迁移环境

电脑需要开启wsl2 可以使用wsl -v 查看当前的版本 wsl -v WSL 版本&#xff1a; 2.2.4.0 内核版本&#xff1a; 5.15.153.1-2 WSLg 版本&#xff1a; 1.0.61 MSRDC 版本&#xff1a; 1.2.5326 Direct3D 版本&#xff1a; 1.611.1-81528511 DXCore 版本&#xff1a; 10.0.2609…...

第22节 Node.js JXcore 打包

Node.js是一个开放源代码、跨平台的、用于服务器端和网络应用的运行环境。 JXcore是一个支持多线程的 Node.js 发行版本&#xff0c;基本不需要对你现有的代码做任何改动就可以直接线程安全地以多线程运行。 本文主要介绍JXcore的打包功能。 JXcore 安装 下载JXcore安装包&a…...