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

上一篇:

C#,入门教程(12)——数组及数组使用的基础知识https://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)——字符串与其他数据类型的转换https://blog.csdn.net/beijinghorn/article/details/124004562

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/10356.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

主流的AEB标准有哪些?

目录 1、AEB的技术构成与工作原理 2、典型应用场景举例 3、AEB的功能分类 4、AEB系统性能评估的关键因素 5、全球AEB技术标准概览 5.1、联合国欧洲经济委员会&#xff08;UN ECE&#xff09; 5.2、美国NHTSA法规 5.3、中国标准 5.4、印度AIS 185 5.5、澳大利亚ADR法规…

Linux网络 | 网络层IP报文解析、认识网段划分与IP地址

前言&#xff1a;本节内容为网络层。 主要讲解IP协议报文字段以及分离有效载荷。 另外&#xff0c; 本节也会带领友友认识一下IP地址的划分。 那么现在废话不多说&#xff0c; 开始我们的学习吧&#xff01;&#xff01; ps&#xff1a;本节正式进入网络层喽&#xff0c; 友友们…

基于Python的药物相互作用预测模型AI构建与优化(上.文字部分)

一、引言 1.1 研究背景与意义 在临床用药过程中,药物相互作用(Drug - Drug Interaction, DDI)是一个不可忽视的重要问题。当患者同时服用两种或两种以上药物时,药物之间可能会发生相互作用,从而改变药物的疗效、增加不良反应的发生风险,甚至危及患者的生命安全。例如,…

TCL C++开发面试题及参考答案

进程和线程的区别 进程和线程都是操作系统中重要的概念,它们在很多方面存在着明显的区别。 从概念上来说,进程是资源分配的基本单位,每个进程都有自己独立的地址空间、内存、文件描述符等资源。例如,当我们在计算机上同时运行多个应用程序,像浏览器、文本编辑器等,每个应…

如何获取当前的位置信息

文章目录 1 概念介绍2 使用方法3 示例代码3 体验分享 我们在上一章回中介绍了如何实现滑动菜单相关的内容&#xff0c;本章回中将介绍如何获取位置信息.闲话休提&#xff0c;让我们一起Talk Flutter吧。 1 概念介绍 我们在这里说的获取位置信息本质上是获取当前手机所在位置的…

python-leetcode-旋转链表

61. 旋转链表 - 力扣&#xff08;LeetCode&#xff09; # Definition for singly-linked list. # class ListNode: # def __init__(self, val0, nextNone): # self.val val # self.next next class Solution:def rotateRight(self, head: Optional[ListN…

基于排队理论的物联网发布/订阅通信系统建模与优化

论文标题 英文标题&#xff1a;Queuing Theory-Based Modeling and Optimization of a Publish/Subscribe IoT Communication System 中文标题&#xff1a;基于排队理论的物联网发布/订阅通信系统建模与优化 作者信息 Franc Pouhela Anthony Kiggundu Hans D. Schotten …

[EAI-026] DeepSeek-VL2 技术报告解读

Paper Card 论文标题&#xff1a;DeepSeek-VL2: Mixture-of-Experts Vision-Language Models for Advanced Multimodal Understanding 论文作者&#xff1a;Zhiyu Wu, Xiaokang Chen, Zizheng Pan, Xingchao Liu, Wen Liu, Damai Dai, Huazuo Gao, Yiyang Ma, Chengyue Wu, Bin…

基于Python的药物相互作用预测模型AI构建与优化(下.代码部分)

四、特征工程 4.1 分子描述符计算 分子描述符作为量化分子性质的关键数值,能够从多维度反映药物分子的结构和化学特征,在药物相互作用预测中起着举足轻重的作用。RDKit 库凭借其强大的功能,为我们提供了丰富的分子描述符计算方法,涵盖了多个重要方面的分子性质。 分子量…

【算法】动态规划专题① ——线性DP python

目录 引入简单实现稍加变形举一反三实战演练总结 引入 楼梯有个台阶&#xff0c;每次可以一步上1阶或2阶。一共有多少种不同的上楼方法&#xff1f; 怎么去思考&#xff1f; 假设就只有1个台阶&#xff0c;走法只有&#xff1a;1 只有2台阶&#xff1a; 11&#xff0c;2 只有3台…

0 基础学运维:解锁 K8s 云计算运维工程师成长密码

前言&#xff1a;作为一个过来人&#xff0c;我曾站在技术的门槛之外&#xff0c;连电脑运行内存和内存空间都傻傻分不清&#xff0c;完完全全的零基础。但如今&#xff0c;我已成长为一名资深的k8s云计算运维工程师。回顾这段历程&#xff0c;我深知踏上这条技术之路的艰辛与不…

事务03之MVCC机制

MVCC 多版本并发控制机制 文章目录 MVCC 多版本并发控制机制一&#xff1a;并发事务的场景1&#xff1a;读读场景2&#xff1a;写写场景3&#xff1a;读写 or 写读场景 二&#xff1a;MVCC机制综述1&#xff1a;MVCC日常生活的体现2&#xff1a;多版本并发控制 三&#xff1a;M…

数据结构-Stack和栈

1.栈 1.1什么是栈 栈是一种特殊的线性表&#xff0c;只允许在固定的一段进行插入和删除操作&#xff0c;进行插入和删除操作的一段称为栈顶&#xff0c;另一端称为栈底。 栈中的数据元素遵顼后进先出LIFO&#xff08;Last In First Out&#xff09;的原则&#xff0c;就像一…

langchain基础(二)

一、输出解析器&#xff08;Output Parser&#xff09; 作用&#xff1a;&#xff08;1&#xff09;让模型按照指定的格式输出&#xff1b; &#xff08;2&#xff09;解析模型输出&#xff0c;提取所需的信息 1、逗号分隔列表 CommaSeparatedListOutputParser&#xff1a;…

AI编程:如何编写提示词

这是小卷对AI编程工具学习的第2篇文章&#xff0c;今天讲讲如何编写AI编程的提示词&#xff0c;并结合实际功能需求案例来进行开发 1.编写提示词的技巧 好的提示词应该是&#xff1a;目标清晰明确&#xff0c;具有针对性&#xff0c;能引导模型理解问题 下面是两条提示词的对…

【B站保姆级视频教程:Jetson配置YOLOv11环境(五)Miniconda安装与配置】

B站同步视频教程&#xff1a;https://www.bilibili.com/video/BV1MwFDeyEYC/ 文章目录 0. Anaconda vs Miniconda in Jetson1. 下载Miniconda32. 安装Miniconda33. 换源3.1 conda 换源3.2 pip 换源 4. 创建环境5. 设置默认启动环境 0. Anaconda vs Miniconda in Jetson Jetson…

仿真设计|基于51单片机的无线投票系统仿真

目录 具体实现功能 设计介绍 51单片机简介 资料内容 仿真实现&#xff08;protues8.7&#xff09; 程序&#xff08;Keil5&#xff09; 全部内容 资料获取 具体实现功能 &#xff08;1&#xff09;投票系统分为发送端和接收端。 &#xff08;2&#xff09;发送端通过按…

玩转大语言模型——使用langchain和Ollama本地部署大语言模型

系列文章目录 玩转大语言模型——使用langchain和Ollama本地部署大语言模型 玩转大语言模型——ollama导入huggingface下载的模型 玩转大语言模型——langchain调用ollama视觉多模态语言模型 玩转大语言模型——使用GraphRAGOllama构建知识图谱 玩转大语言模型——完美解决Gra…

(动态规划基础 打家劫舍)leetcode 198

已知h2和h1&#xff0c;用已知推出未知 推是求答案&#xff0c;回溯是给答案 这里图片给出dfs暴力&#xff0c;再进行记录答案完成记忆化搜索&#xff0c;再转为dp数组 #include<iostream> #include<vector> #include<algorithm> //nums:2,1,1,2 //dp:2,2,…

origin如何在已经画好的图上修改数据且不改变原图像的画风和格式

例如我现在的.opju文件长这样 现在我换了数据集&#xff0c;我想修改这两个图表里对应的算法里的数据&#xff0c;但是我还想保留这图像现在的形式&#xff0c;可以尝试像下面这样做&#xff1a; 右击第一个图&#xff0c;出现下面&#xff0c;选择Book[sheet1] 选择工作簿 出…