C#基础——字符串、字符串API

C#基础——字符串、字符串API

字符串是 System.String 类的实例。字符串表示文本数据,可以包含字母、数字、符号和空格等字符。

创建字符串

string str1 = "Hello, World!"; // 使用双引号创建字符串
string str2 = "This is a C# string.";

字符串拼接

string concatenated = str1 + " " + str2; // 使用 + 运算符连接字符串
string interpolated = $"{str1} {str2}"; // 使用字符串插值方式连接字符串

占位符

int i = 12345;
Console.WriteLine("{0:C}", i); //货币占位符
Console.WriteLine("{0:D}", DateTime.Now); //日期占位符(年/月/日)
Console.WriteLine("{0:y}", DateTime.Now); //日期占位符(年/月)

使用字符数组对字符串进行初始化

char[] charArray = { 't', 'i', 'm', 'e' };
string charStr = new string(charArray);
Console.WriteLine(charStr); //time

字符串长度 Length

string charStr = "time";
// 使用 Length 属性获取字符串的长度
Console.WriteLine(charStr.Length); //4
// 使用索引获取指定位数的字符(可以把字符串当作是一个 "数组")
Console.WriteLine(charStr[3]); //m

字符串API

// IndexOf 获取指定字符在字符串中的位置(索引)
Console.WriteLine(charStr.IndexOf('e'));//3
// 第二个参数代表要查找字符开始的位置(有多个的相同字符的时候使用第二个参数)
Console.WriteLine(charStr.IndexOf('e', 4)); //-1
// LastIndexOf 从后往前查
Console.WriteLine(charStr.IndexOf('e')); //3
// 判断字符串首位内容
string str2 = "梦想还是要有的,万一实现了呢!";
// StartsWith 判断以xxx开头,返回一个布尔值
Console.WriteLine(str2.StartsWith("梦想")); //true
Console.WriteLine(str2.StartsWith("叽里呱啦")); //false
// EndsWith 判断以xxx结尾
Console.WriteLine(str2.EndsWith("!")); //true
Console.WriteLine(str2.EndsWith("叽里呱啦")); //false
// Contains 是否包含某一部分
Console.WriteLine(str2.Contains("梦想")); //true
Console.WriteLine(str2.Contains("叽里呱啦")); //true

IsNullOrEmpty 判断是不是空字符

// 判断是不是空字符串 null
string str3 = ""; //这个不是空字符串,是占内存的,属于内容是空的
str3 = null; //这个是空字符串,压根没有内存
// IsNullOrEmpty 判断指定字符是不是空的,返回布尔值
Console.WriteLine(string.IsNullOrEmpty("--" + str3)); //false//字符串中代表空的方式有多种
string c1 = "";  //有内存,无内容
string c2 = null; //无内存
string c3 = string.Empty; //等价于 c1
// 值类型有默认值所以不能直接为null
// int number = null; //报错!

Equals 比较两个字符串的值是否相等,返回一个布尔值

string a = "hello", b = "world";
Console.WriteLine(a.Equals(b)); //false
Console.WriteLine(a == b); //false

ToUpper ToLower 大小写转换

string str4 = "Learn And Live";
// 大小写转换
Console.WriteLine(str4.ToUpper()); //转为大写
Console.WriteLine(str4.ToLower()); //转为小写

Substring 截取字符串

第一个参数是:开始的索引(包含)
第二个参数是:截取字符串的位数

string str4 = "Learn And Live";
Console.WriteLine(str4.Substring(1, 3));

Split 分割字符串

第一个参数代表分隔符(需要一个char类型的数组)
第二个参数代表分割的结果以 xx 形式呈现
StringSplitOptions.RemoveEmptyEntries 除空字符串(如果不写第二个参数,默认是None)

string str5 = "关注博主,,一起打好C#基础,学好编程语言,做一个不脱发的程序猿";
char[] separator = { ',' }; // 声明分割的字符串数组
string[] splitStr = str5.Split(separator, StringSplitOptions.RemoveEmptyEntries);
foreach (var item in splitStr) {Console.WriteLine(item);
}

去除空格

string str6 = "   123   456   ";
// Trim 去除字符串前后空格
Console.WriteLine("<<<" + str6.Trim() + ">>>"); // "123   456"
// TrimStart 去除字符串开头空格
Console.WriteLine("<<<" + str6.TrimStart() + ">>>"); // "123   456   "
// TrimEnd 去除字符串结尾空格
Console.WriteLine("<<<" + str6.TrimEnd() + ">>>"); // "   123   456"

Replace 替换字符串

第一个参数是需要替换的字符,第二个参数是要替换成为的字符

string a2 = "5", b2 = "10";
Console.WriteLine(a2.Replace(a2, b2)); //10

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

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

相关文章

Pyhon基于YOLOV实现的车辆品牌及型号检测项目源码+模型+项目文档

项目运行运行录屏&#xff1a; Pyhon基于YOLOV实现的车辆品牌及型号检测项目运行录屏 完整代码下载地址&#xff1a;Pyhon基于YOLOV实现的车辆品牌及型号检测项目 项目背景&#xff1a; 车辆检测及型号识别广泛应用于物业&#xff0c;交通等的管理场景中。通过在停车场出入口…

【PTA刷题+代码+详解】求二叉树度为1的结点个数(递归法)

文章目录 题目C代码详解 题目 在二叉树T中&#xff0c;其度为1的结点是指某结点只有左孩子或只有右孩子。利用递归方法求二叉树T的度为1的结点个数。 1&#xff09;如果TNULL&#xff0c;则是空树&#xff0c;度为1的结点个数为0&#xff0c;返回值为0&#xff1b; 2&#xff0…

上海亚商投顾:沪指收复3000点,房地产板块集体走强

上海亚商投顾前言&#xff1a;无惧大盘涨跌&#xff0c;解密龙虎榜资金&#xff0c;跟踪一线游资和机构资金动向&#xff0c;识别短期热点和强势个股。 一.市场情绪 沪指昨日窄幅震荡&#xff0c;创业板指走势较弱&#xff0c;科创50指数跌近1%。房地产板块集体走强&#xff0…

深度学习中的各类评价指标

深度学习中的各类评价指标 1 Dice Loss2 Precision&#xff08;精度&#xff09;3 Recall&#xff08;召回率&#xff09;4 F-Score5 mAP 1 Dice Loss Dice Loss&#xff0c;也叫Soft Dice Coefficient&#xff0c;是一种用于图像分割任务的损失函数。它基于目标分割图像与模型…

Apache Flink(十一):Flink集群部署-Standalone集群部署

🏡 个人主页:IT贫道_大数据OLAP体系技术栈,Apache Doris,Clickhouse 技术-CSDN博客 🚩 私聊博主:加入大数据技术讨论群聊,获取更多大数据资料。 🔔 博主个人B栈地址:豹哥教你大数据的个人空间-豹哥教你大数据个人主页-哔哩哔哩视频 目录 1. 节点划分

设计模式——原型模式(创建型)

引言 原型模式是一种创建型设计模式&#xff0c; 使你能够复制已有对象&#xff0c; 而又无需使代码依赖它们所属的类。 问题 如果你有一个对象&#xff0c; 并希望生成与其完全相同的一个复制品&#xff0c; 你该如何实现呢&#xff1f; 首先&#xff0c; 你必须新建一个属于…

C#基础——语法学习

C#的基本语法 在介绍基本语法之前我们先来大概讲一下创建好的这些文件都是做什么的 .sln文件&#xff1a;将项目和解决方案项结合到一起 .vs文件夹&#xff1a;用来存储当前解决方案中关于用户的设置和自定义项&#xff0c;比如断点&#xff0c;主题等。&#xff08;一般都将其…

GPT-4:背景、技术特点、发展、应用与前景

一、引言 随着人工智能技术的飞速发展&#xff0c;自然语言处理领域涌现出越来越多的创新成果。其中&#xff0c;GPT-4&#xff08;Generative Pre-trained Transformer 4&#xff09;作为OpenAI公司推出的最新一代大型语言模型&#xff0c;凭借其卓越的性能和广泛的应用场景&…

2312d,把alloca注入调用者域

原文 有以下技巧.因为无法推导长度,因此不理想,但这成功地把alloca注入到调用者域中. import core.stdc.stdlib:alloca; import std.range:ElementType; import core.lifetime:moveEmplace; struct VLA(T,alias len){T[] storage;this(R)(R initializer,return void[] storage…

什么是设计模式

一、概述 1、设计模式是解决某些问题的办法 2、设计模式不是凭空想象出来的&#xff0c;是经验的总结和积累 3、设计模式是不断的发展的 4、各个行业都有自己的设计模式 二、设计模式的基本要素 设计模式一般包括模式的名称、问题、目的、解决方案、效果、实例代码和相关…

C++ 类型萃取

什么是 type_traits 在C中&#xff0c;类型萃取&#xff08;type_traits&#xff09;是一种编译时技术&#xff0c;用于在编译期间获取和操作类型的信息。 主要用于泛型编程以及在编译时做出决策。 类型萃取可以帮我们检查和处理类型特性&#xff0c;从而优化代码、避免错误或…

飞天使-linux操作的一些技巧与知识点2-TCP的三次握手以及四次挥手以及转换状态

文章目录 TCP 的三次握手四次挥手转换状态 TCP 的三次握手 第一次&#xff0c;客户端与服务端建立链接&#xff0c;需要发送请求连接的消息 第二次&#xff0c;服务端接口到数据后&#xff0c;返回一个确认的操作*&#xff08;至此客户端和服务端链路建立成功&#xff09; 第三…

如何利用宝塔面板和docker快速部署网站

当你有了一台服务器&#xff0c;就会折腾往这台服务器上部署各种好玩的网站。市面上有许多开源的网站项目&#xff0c;通过docker技术可以快速部署并使用&#xff0c;本文将以部署filebrowser举例介绍网站部署的基本流程。 1. 安装宝塔面板 宝塔面板是一款开源的网站运维工具…

TLF35584 定时唤醒功_理论篇

1 简介 TLF35584在连接到电池(Power-On-Reset POR)时自动打开,并进入初始化状态,在该状态下设备将被配置。配置成功后,通过SPI命令将设备发送到正常状态。从正常或唤醒状态,设备可以发送到低功率状态(睡眠或待机)通过SPI命令。   WAK和ENA信号是离开低功率状态(或故障安全…

Mysql的多表联合查询

内连接 隐式内连接 select column from tb1,tb2 where 条件; 显示内连接 关键字&#xff1a;[inner] join on 显示内连接与外连接的不同是新增的关键字&#xff0c;inner join 以及 使用on 替换了where select column from tb1 [inner] join tb2 on 条件; 外连接 左外…

部署Kubernetes(k8s)集群,可视化部署kuboard

所需机器 主机名地址角色配置k8s-master192.168.231.134主节点2核4G,centos7k8s-node1192.168.231.135工作节点2核4G,centos7k8s-node2192.168.231.136工作节点2核4G,centos7 主节点CPU核数必须是 ≥2核且内存要求必须≥2G&#xff0c;否则k8s无法启动 1. 集群环境部署【三台…

【JVM从入门到实战】(四)类的生命周期

什么是类的生命周期 类的生命周期描述了一个类加载、连接、初始化、使用、卸载的整个过程 一个类完整的生命周期如下&#xff1a; 加载阶段 加载阶段第一步是类加载器根据类的全限定名通过不同的渠道以二进制流的方式获取字节码信息。 程序员可以使用Java代码拓展的不同的渠道…

java开发的智能聊天机器人_超级AI_支持自动绘画功能

支持Web、Android、IOS、H5等多终端应用。它使用OpenAI的ChatGPT模型实现智能聊天机器人&#xff0c;并支持绘图自动生成Vincent图。未来还将接入国内大型AI模型&#xff0c;如文心一言、统一千问、MOSS等模型&#xff0c;并不断更新以满足用户需求。 AI大脑软件中的AI绘画功能…

HuggingFists-低代码玩转LLM RAG(2) --Query

继上一篇文章我们探讨了如何使用HuggingFists实现文本的Embedding后。这一次我们将介绍如何使用HuggingFists实现LLM RAG的查询部分。 首先我们回顾一下RAG的结构&#xff0c;如下图&#xff1a; 基于向量数据库的RAG结构图 我们在上篇文章中介绍了如何使用HuggingFists实现结构…

GNN 学习笔记

稍微看一下之后备用。 【图神经网络综述】GNN原理&#xff0b;落地应用实现框架全解_gnn实现-CSDN博客 GNN相比CNN最大的区别在于数据结构&#xff0c;CNN一般作用在二维、三维数据里&#xff0c;如图像、表格数据等&#xff0c;可以进行卷积操作。而GNN作用在一个由节点和边…