学习c#的第十天

目录

C# 字符串(String)

创建 String 对象

String 类的属性

String 类的方法

实例

C#的string.Format格式化日期


C# 字符串(String)

创建 String 对象

可以使用以下方法之一来创建 string 对象:

1、通过给 String 变量指定一个字符串

string str1 = "Hello, World!"; // 使用字符串字面量直接赋值给变量
string str2 = ""; // 创建一个空字符串

2、通过使用 String 类构造函数

string str3 = new string('a', 5); // 创建由 5 个字符 'a' 组成的字符串
string str4 = new string(new char[] { 'H', 'e', 'l', 'l', 'o' }); // 使用字符数组创建字符串

3、通过使用字符串串联运算符( + )

string str5 = "Hello" + " " + "World!"; // 将多个字符串连接成一个新的字符串

4、通过检索属性或调用一个返回字符串的方法

string str6 = DateTime.Now.ToString(); // 获取当前日期和时间的字符串表示形式

5、通过格式化方法来转换一个值或对象为它的字符串表示形式

int num = 42;
string str7 = string.Format("答案是 {0}.", num); // 使用占位符将值格式化为字符串

String 类的属性

String 类有以下两个属性:

序号属性名称 & 描述
1Chars
在当前 String 对象中获取 Char 对象的指定位置。
2Length
在当前的 String 对象中获取字符数。

String 类的方法

String 类有许多方法用于 string 对象的操作。下面的表格提供了一些最常用的方法:

序号方法名称 & 描述
1public static int Compare( string strA, string strB )
比较两个指定的 string 对象,并返回一个表示它们在排列顺序中相对位置的整数。该方法区分大小写。
2public static int Compare( string strA, string strB, bool ignoreCase )
比较两个指定的 string 对象,并返回一个表示它们在排列顺序中相对位置的整数。但是,如果布尔参数为真时,该方法不区分大小写。
3public static string Concat( string str0, string str1 )
连接两个 string 对象。
4public static string Concat( string str0, string str1, string str2 )
连接三个 string 对象。
5public static string Concat( string str0, string str1, string str2, string str3 )
连接四个 string 对象。
6public bool Contains( string value )
返回一个表示指定 string 对象是否出现在字符串中的值。
7public static string Copy( string str )
创建一个与指定字符串具有相同值的新的 String 对象。
8public void CopyTo( int sourceIndex, char[] destination, int destinationIndex, int count )
从 string 对象的指定位置开始复制指定数量的字符到 Unicode 字符数组中的指定位置。
9public bool EndsWith( string value )
判断 string 对象的结尾是否匹配指定的字符串。
10public bool Equals( string value )
判断当前的 string 对象是否与指定的 string 对象具有相同的值。
11public static bool Equals( string a, string b )
判断两个指定的 string 对象是否具有相同的值。
12public static string Format( string format, Object arg0 )
把指定字符串中一个或多个格式项替换为指定对象的字符串表示形式。
13public int IndexOf( char value )
返回指定 Unicode 字符在当前字符串中第一次出现的索引,索引从 0 开始。
14public int IndexOf( string value )
返回指定字符串在该实例中第一次出现的索引,索引从 0 开始。
15public int IndexOf( char value, int startIndex )
返回指定 Unicode 字符从该字符串中指定字符位置开始搜索第一次出现的索引,索引从 0 开始。
16public int IndexOf( string value, int startIndex )
返回指定字符串从该实例中指定字符位置开始搜索第一次出现的索引,索引从 0 开始。
17public int IndexOfAny( char[] anyOf )
返回某一个指定的 Unicode 字符数组中任意字符在该实例中第一次出现的索引,索引从 0 开始。
18public int IndexOfAny( char[] anyOf, int startIndex )
返回某一个指定的 Unicode 字符数组中任意字符从该实例中指定字符位置开始搜索第一次出现的索引,索引从 0 开始。
19public string Insert( int startIndex, string value )
返回一个新的字符串,其中,指定的字符串被插入在当前 string 对象的指定索引位置。
20public static bool IsNullOrEmpty( string value )
指示指定的字符串是否为 null 或者是否为一个空的字符串。
21public static string Join( string separator, string[] value )
连接一个字符串数组中的所有元素,使用指定的分隔符分隔每个元素。
22public static string Join( string separator, string[] value, int startIndex, int count )
连接一个字符串数组中的指定位置开始的指定元素,使用指定的分隔符分隔每个元素。
23public int LastIndexOf( char value )
返回指定 Unicode 字符在当前 string 对象中最后一次出现的索引位置,索引从 0 开始。
24public int LastIndexOf( string value )
返回指定字符串在当前 string 对象中最后一次出现的索引位置,索引从 0 开始。
25public string Remove( int startIndex )
移除当前实例中的所有字符,从指定位置开始,一直到最后一个位置为止,并返回字符串。
26public string Remove( int startIndex, int count )
从当前字符串的指定位置开始移除指定数量的字符,并返回字符串。
27public string Replace( char oldChar, char newChar )
把当前 string 对象中,所有指定的 Unicode 字符替换为另一个指定的 Unicode 字符,并返回新的字符串。
28public string Replace( string oldValue, string newValue )
把当前 string 对象中,所有指定的字符串替换为另一个指定的字符串,并返回新的字符串。
29public string[] Split( params char[] separator )
返回一个字符串数组,包含当前的 string 对象中的子字符串,子字符串是使用指定的 Unicode 字符数组中的元素进行分隔的。
30public string[] Split( char[] separator, int count )
返回一个字符串数组,包含当前的 string 对象中的子字符串,子字符串是使用指定的 Unicode 字符数组中的元素进行分隔的。int 参数指定要返回的子字符串的最大数目。
31public bool StartsWith( string value )
判断字符串实例的开头是否匹配指定的字符串。
32public char[] ToCharArray()
返回一个带有当前 string 对象中所有字符的 Unicode 字符数组。
33public char[] ToCharArray( int startIndex, int length )
返回一个带有当前 string 对象中所有字符的 Unicode 字符数组,从指定的索引开始,直到指定的长度为止。
34public string ToLower()
把字符串转换为小写并返回。
35public string ToUpper()
把字符串转换为大写并返回。
36public string Trim()
移除当前 String 对象中的所有前导空白字符和后置空白字符。

上面的方法列表并不详尽,请访问 MSDN 库,查看完整的方法列表和 String 类构造函数。

实例

using System;class Program
{static void Main(){// 使用 Length 属性获取字符串长度string str = "Hello, World!";int length = str.Length;Console.WriteLine("字符串的长度为:" + length);// 使用 Substring 方法截取子字符串string subStr = str.Substring(7, 5);Console.WriteLine("截取的子字符串为:" + subStr);// 使用 ToUpper 方法将字符串转换为大写string upperStr = str.ToUpper();Console.WriteLine("转换为大写后的字符串为:" + upperStr);// 使用 Replace 方法替换字符串中的部分内容string replacedStr = str.Replace("World", "宇宙");Console.WriteLine("替换后的字符串为:" + replacedStr);}
}

C#的string.Format格式化日期

在 C# 中,可以使用 string.Format 方法来格式化日期。可以在格式字符串中使用特定的日期和时间格式说明符来定义日期的显示方式。

以下是一些常用的日期和时间格式说明符:

  • "d": 短日期格式(例如:11/13/2023)
  • "D": 长日期格式(例如:2023年11月13日)
  • "t": 短时间格式(例如:11:28 AM)
  • "T": 长时间格式(例如:11:28:14 AM)
  • "f": 完整日期时间格式(例如:2023年11月13日 上午 11:28)
  • "F": 完整日期时间格式(包含秒)(例如:2023年11月13日 上午 11:28:14)
  • "g": 一般日期时间格式(例如:11/13/2023 11:28 AM)
  • "G": 一般日期时间格式(包含秒)(例如:11/13/2023 11:28:14 AM)
  • "M": 月日格式(例如:11月13日)
  • "Y": 年份和月份格式(例如:2023年11月)
using System;class Program
{static void Main(){DateTime dt = DateTime.Now;// 年份格式Console.WriteLine(string.Format("{0:y yy yyy yyyy}", dt));// 23 23 2023 2023// 月份格式Console.WriteLine(string.Format("{0:M MM MMM MMMM}", dt));// 11 11 11月 十一月// 日期格式Console.WriteLine(string.Format("{0:d dd ddd dddd}", dt));// 13 13 周一 星期一// 时间格式(短)Console.WriteLine(string.Format("{0:t tt}", dt));// 下 下午// 小时格式(24小时制)Console.WriteLine(string.Format("{0:H HH}", dt));// 19 19// 小时格式(12小时制)Console.WriteLine(string.Format("{0:h hh}", dt));// 7 07// 分钟格式Console.WriteLine(string.Format("{0:m mm}", dt));// 43 43// 秒格式Console.WriteLine(string.Format("{0:s ss}", dt));//45 45// 毫秒格式Console.WriteLine(string.Format("{0:F FF FFF FFFF FFFFF FFFFFF FFFFFFF}", dt));// 5 56 567 5674 56745 567456 5674566// 毫秒格式(去除末尾的0)Console.WriteLine(string.Format("{0:f ff fff ffff fffff ffffff fffffff}", dt));// 1 15 152 1521 15219 152195 1521954// 时区格式Console.WriteLine(string.Format("{0:z zz zzz}", dt));// +8 +08 +08:00// 自定义格式Console.WriteLine(string.Format("{0:yyyy/MM/dd HH:mm:ss.fff}", dt));// "2023/11/13 19:46:02.327"Console.WriteLine(string.Format("{0:yyyy/MM/dd dddd}", dt));// "2023/11/13 星期一"Console.WriteLine(string.Format("{0:yyyy/MM/dd dddd tt hh:mm}", dt));// "2023/11/13 星期一 下午 07:47"Console.WriteLine(string.Format("{0:yyyyMMdd}", dt));// "20231113"Console.WriteLine(string.Format("{0:yyyy-MM-dd HH:mm:ss.fff}", dt));// "2023-11-13 19:47:57.395"}
}

上面的代码里用到的String.Format 方法并不详尽,请访问微软的官方文档(或者看这篇文章进行学习),查看完整的方法内容。

除去string.Format()可以对日期进行格式化之外,*.ToString()也可以实现相同的效果:

using System;class Program
{static void Main(){DateTime dt = DateTime.Now;dt.ToString("y yy yyy yyyy");dt.ToString("M MM MMM MMMM");dt.ToString("d dd ddd dddd");dt.ToString("t tt");dt.ToString("H HH");dt.ToString("h hh");dt.ToString("m mm");dt.ToString("s ss");dt.ToString("F FF FFF FFFF FFFFF FFFFFF FFFFFFF");dt.ToString("f ff fff ffff fffff ffffff fffffff");dt.ToString("z zz zzz");dt.ToString("yyyy/MM/dd HH:mm:ss.fff"); dt.ToString("yyyy/MM/dd dddd");     dt.ToString("yyyy/MM/dd dddd tt hh:mm"); dt.ToString("yyyyMMdd");         dt.ToString("yyyy-MM-dd HH:mm:ss.fff"); }
}

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

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

相关文章

taro(踩坑) npm run dev:weapp 微信小程序开发者工具预览报错

控制台报错信息: VM72:9 app.js错误: Error: module vendors-node_modules_taro_weapp_prebundle_chunk-JUEIR267_js.js is not defined, require args is ./vendors-node_modules_taro_weapp_prebundle_chunk-JUEIR267_js.js 环境: node 版本&#x…

Spring Boot(二)

1、运行维护 1.1、打包程序 SpringBoot程序是基于Maven创建的,在Maven中提供有打包的指令,叫做package。本操作可以在Idea环境下执行。 mvn package 打包后会产生一个与工程名类似的jar文件,其名称是由模块名版本号.jar组成的。 1.2、程序…

vue分片上传视频并转换为m3u8文件并播放

开发环境: 基于若依开源框架的前后端分离版本的实践,后端java的springboot,前端若依的vue2,做一个分片上传视频并分段播放的功能,因为是小项目,并没有专门准备文件服务器和CDN服务,后端也是套用…

2023NewStarCTF

目录 一、阳光开朗大男孩 二、大怨种 三、2-分析 四、键盘侠 五、滴滴滴 六、Include? 七、medium_sql 八、POP Gadget 九、OtenkiGirl 一、阳光开朗大男孩 1.题目给出了secret.txt和flag.txt两个文件,secret.txt内容如下: 法治自由公正爱国…

【Redis】list常用命令内部编码使用场景

文章目录 前置知识列表类型的特点 命令LPUSHLPUSHXRPUSHRPUSHXLRANGELPOPRPOPLINDEXLREMLINSERTLTRIMLSETLLEN 阻塞版本命令BLPOPBRPOP 命令总结内部编码测试内部编码 使用场景消息队列分频道的消息队列 模拟栈和队列 前置知识 列表类型是⽤来存储多个有序的字符串&#xff0c…

第一次实操Python+robotframework接口自动化测试

目前我们需要考虑的是如何实现关键字驱动实现接口自动化输出,通过关键字的封装实现一定意义上的脚本与用例的脱离! robot framework 的安装不过多说明,网上资料比较太多~ 实例:!!!&#xff01…

AI:80-基于深度学习的医学图像分割与病变识别

🚀 本文选自专栏:人工智能领域200例教程专栏 从基础到实践,深入学习。无论你是初学者还是经验丰富的老手,对于本专栏案例和项目实践都有参考学习意义。 ✨✨✨ 每一个案例都附带有在本地跑过的代码,详细讲解供大家学习,希望可以帮到大家。欢迎订阅支持,正在不断更新中,…

day55 反向解析和视图层精确定位

上周内容回顾 orm的增删改查 1. 查询 from app01 import models models.UserInfo.objects.all() # 查询所有的字段信息和数据 resmodels.UserInfo.objects.first() # 查询一条,而且是第一条,queryset对象,列表套对象的形式 if res:res[0] t…

【表面重建】第一篇:delaunay三角化(未完)

文章目录 声明delaunay三角片的特性实现delaunay算法的分类生长算法逐点插入算法分治算法基于Bowyer-Watson算法 code调用scipy的API调用cgal的API 参考来源 声明 本帖持续更新中最近一次更新日期:2023.11.13如有纰漏望指正! delaunay三角片的特性 de…

Flink SQL 表值聚合函数(Table Aggregate Function)详解

使用场景: 表值聚合函数即 UDTAF,这个函数⽬前只能在 Table API 中使⽤,不能在 SQL API 中使⽤。 函数功能: 在 SQL 表达式中,如果想对数据先分组再进⾏聚合取值: select max(xxx) from source_table gr…

2022年06月 Python(五级)真题解析#中国电子学会#全国青少年软件编程等级考试

Python等级考试(1~6级)全部真题・点这里 一、单选题(共25题,每题2分,共50分) 第1题 Python中 print(“八进制{: o}”.format(12)) 正确的输出结果是?( ) A: 八进制:O B: 八进制:O14 C: 八进制14O D: 八进制14 答案:D 字符串的format()格式。 第2题 下列的程…

PostgreSQL基础入门

为什么选择PostgreSQL 功能更全面:PGSQL的功能更加全面,支持开窗函数、物化视图、分区表、json等类型,MySQL8以上支持开窗函数、分区表、json等,但物化视图仍不支持。高可用:PG更适合分布式环境,如流复制、…

pychon/PIL/opencv/json学习过程中遇到的问题

1. 使用PIL.Image读取图片 注意:pytorch中对图像预处理是transforms的输入必须是PIL格式的文件,使用cv2读取的图片就按照第二条的代码处理(3通道合并、归一化处理) from PIL import Image img Image.open("test1.jpg"…

TensorFlow: An open-source software library for Machine Intelligence

Google开源的机器学习软件包 项目主页:https://www.tensorflow.org/Github主页:GitHub - tensorflow/tensorflow: An Open Source Machine Learning Framework for Everyone主要版本:1.0(当前最新版本),0.12.0开源协议:Apache 2.0TensorFlow™ 是一个采用数据流图(data…

2023 年最新企业微信官方会话机器人开发详细教程(更新中)

目标是开发一个简易机器人,能接收消息并作出回复。 获取企业 ID 企业信息页面链接地址:https://work.weixin.qq.com/wework_admin/frame#profile 自建企业微信机器人 配置机器人应用详情 功能配置 接收消息服务器配置 配置消息服务器配置 配置环境变量…

如何利用 cpolar 内网穿透技术实现 U8 用友 ERP 异地访问

文章目录 前言1. 服务器本机安装U8并调试设置2. 用友U8借助cpolar实现企业远程办公2.1 在被控端电脑上,点击开始菜单栏,打开设置——系统2.2 找到远程桌面2.3 启用远程桌面 3. 安装cpolar内网穿透3.1 注册cpolar账号3.2 下载cpolar客户端 4. 获取远程桌面…

【MATLAB源码-第75期】基于模拟退火算法(SA)的栅格路径规划,输出做短路径图和适应度曲线。

操作环境: MATLAB 2022a 1、算法描述 模拟退火算法是一种启发式优化算法,通常用于解决组合优化问题,例如旅行商问题和图着色问题。它模拟了固体材料在退火过程中逐渐冷却达到稳定状态的行为,以寻找问题的全局最优解。 以下是模…

Hadoop原理,HDFS架构,MapReduce原理

Hadoop原理,HDFS架构,MapReduce原理 2022找工作是学历、能力和运气的超强结合体,遇到寒冬,大厂不招人,可能很多算法学生都得去找开发,测开 测开的话,你就得学数据库,sql&#xff0c…

postswigger 靶场(CSRF)攻略-- 1.没有防御措施的 CSRF 漏洞

靶场地址: What is CSRF (Cross-site request forgery)? Tutorial & Examples | Web Security Academy (portswigger.net)https://portswigger.net/web-security/csrf 没有防御措施的 CSRF 漏洞 题目中已告知易受攻击的是电子邮件的更改功能,而目…

Oracle Primavera Unifier 23.10 新特征

根据官方的说法,Unifier 23.7 ~ 23.9 更多为对功能bug的修复,以下将对23.10进行重点介绍 Cost Sheets Cost Sheets Support Conditional Formatting Conditional formatting of table data is now supported in cost sheets with features such as ce…