C#字符串基础
C#字符串基础
- 1. 字符串的两种创建形式
(1)String A=”cat”;
(2)String B=new string{‘a’,4} .调用类方法,创建一个“aaaa”的字符串
(3)可用A【2】引用‘t’字符
(4)可用 A.Length 直接得出字符串的长度
2.字符串的比较
(1)string.compare(string1,string2);左大于右,返回1.左右相等返回2右大于左返回-1
(2)如果仅比较两字符串是否相等:string 1.Equals(string 2);相等返回True
(3)如果仅比较两字符串是否相等:string1==string 2;相等返回True(正常引用类型的==判断是对于引用地址是否相同的判断,但是字符串虽然是引用类型但这里将它特殊的以值类型==方式的进行判别)
3.字符串的查找
(1)Contains方法:if(s1.Contains(“abc”/s2);s1中是否包含s2,包含True
(2)IndexOf: s1.IndexOf(“avd”/’a’/s2);从0开始找字符串中子字符串的出现的首先位置。s1.IndexOf(“avd”/’a’/s2,int number);从number位置开始找字符串中子字符串出现首位置。
LastIndexOf 同IndexOf 只不过它是从后往前找。
(3)IndexOfAny:作用是在一个字符串中,寻找其他几个字符中的任意一个,如果出现任意一个则返回第一个的首位置。如果没有则返回-1
String A=”ABCDEFG”;
Char []c={‘e’,’f’};
Int x=A.IndexOfAny(c);
//单词补充: index 索引,指数 indexOf 索引
- 1. 求子字符串
Sting B=A.Substring(2);从2位置开始到最后
String B=A.Substring(2,5);从2号位置到5号位置
//如若传入值小于0,系统会抛出ArgumentOutOfRange异常表明参数范围出界
- 2. 字符串中字母大小写的转换
String A=B.Upper(); 转换为大写
String B=B.Lower(); 转换为小写
- 3. 字符串中的插入,删除和替换
String A=”abcdefg”;其中StartIndex 的范围是0-Length-1
(1)String s1=A.Insert(2,”abc”/A); 在2后插入新的字符串
(2) string s2=A.Remove(2); 删除2位置后的所有字符串
(3)string s3=A.Remove(2,3);删除2位置后的三位字符
(4) string s4=A.Replace(‘a’,’b’);将所有的a字符全部替换为b
(5) string s5=A.Replace(‘ab’,’’);(‘ ’空字符,不表示,不是空格)
7.字符串的合并与拆分
(1)两字符串合并:string A=B+C;
(2)字符串数组中,字符串元素的合并:string.Join(参数一:用于连接各字符串元素的连接符。Char/string类型 可以是空字符;参数二:所要连接的字符串数组) ;
(3)字符串拆分成字符串数组:string [] B=字符串名.Split(分隔符,char/string型,可以有一个或多个。多个用逗号隔开,不能是空字符);
8.移除首位指定的字符
(1)移除字符串首部:
字符串名.TrimStart();//移除空字符
字符串名.TrimStart(’’);//移除一个字符
字符串名.TrimStart(’,’’’);//移除多个字符
(2)移除字符串尾部:TrimEnd()
(3)同时移除字符串首尾字符:Trim()
//单词补充: trim n.点缀物;修剪,整理 v.使整齐;整修;欺骗,怒斥; adj.整洁的,整齐的
9.string 与 stringbuilder 的区别
(1)String类实际上表示的是一系列不可变的字符(静态)如 String i+=”abc”; 实际上是返回了一个新的String型实例,不是在原本的String变量的内存上做数据修改。若程序中用到字符串连接的次数少,则此方法方便。但如果程序中存在大量这种操作,则会降低效率
(2)StringBuilder 是System.Text 命名空间下的,可以弥补上述不足。编译器会自动为其分配一定内存,也可以在程序中直接修改(动态)
e.g.
StringBuilder sb1 = new StringBuilder();//空字符串
StringBuilder sb2 = new StringBuilder();
const string s1 = "乾坤转六合"; //定义字符串常量
string s2 = "八荒测阴阳哈哈"; //定义字符串
try{
Console.WriteLine("运行了");
//try中语句出错,不会直接跳到catch中,而是运行到错误的语句时再跳出
sb1.Append(s1); //Append 可接收字符串常量
sb1.Append(","); //Append 可直接守字符串常量,及单字符(隐式转换)
sb2.Append(s2); //Append 可接收字符串
Console.WriteLine("sb2是:"+sb2);
sb1.Append(sb2, 5, 6); //此处发生错误,跳转到catch中
Console.WriteLine(sb1);}
catch{
sb1.Append(sb2,0, 5);
//在此说明Append的重载:单词补充:Append v.附加增补
//sb.Append(参数一:要连入的字符串s,参数二:s的首位置,参数三:s字符个数)
Console.WriteLine(sb1);Console.WriteLine("!");
sb1.AppendLine();
Console.WriteLine(sb1); Console.WriteLine("!");
//AppendLine 与 Append 的区别仅仅在于多了一个换行符
//用Console.WriteLine 输出时会把sb隐式转换为s
string s3 = sb1.ToString();
Console.WriteLine(s3);}
C#字符串基础的更多相关文章
- c#编程基础之字符串基础
1.C#中单个的字符串用单引号包含就是char类型,('a'),单引号中放且只能放一个字符 2.单个字符也可以表示为字符串,还可以有长度为0的字符串. 3.使用s.Length属性来获得字符串中的字符 ...
- php课程 6-20 字符串基础和去除空格和字符串填补函数
php课程 6-20 字符串基础和去除空格和字符串填补函数 一.总结 一句话总结: 二.字符串 字符串定义:$str='hello world!'; 输出字符串:echo $str;print $s ...
- 「学习笔记」字符串基础:Hash,KMP与Trie
「学习笔记」字符串基础:Hash,KMP与Trie 点击查看目录 目录 「学习笔记」字符串基础:Hash,KMP与Trie Hash 算法 代码 KMP 算法 前置知识:\(\text{Border} ...
- JAVA面试题-数组字符串基础
1.大写的Integer和String是可变类还是不可变类?怎么定义不可变类?不可变.用final关键字,如public final class Integer extends Number 2.比较 ...
- python字符串基础知识
1.python字符串可以用"aaa",'aaa',"""aaa""这三种方式来表示 2.python中的转义字符串为" ...
- Python字符串基础一
下一篇:Python 序列通用操作介绍 写在前面 下学期开始上计算机网络的课程,现在已经在看相关书籍,希望结合python写出一个网络爬虫程序.利用学习C++后的空余时间来看看Python并在这里总结 ...
- Python字符串基础操作
==============字符串======== >>> s1='www.baidu.com' >>> type(s1) <type 'str'> & ...
- HDU字符串基础题(1020,1039,1062,1088,1161,1200,2017)
并不是很精简,随便改改A过了就没有再简化了. 1020. Problem Description Given a string containing only 'A' - 'Z', we could ...
- 第11天:JS中变量、字符串基础知识
一.js简介用来制作页面交互效果,提高用户体验. js页面效果:轮播图.选项卡.地图.表单验证javascript是弱变量类型的语言,变量只需要用var来声明.而java要根据变 量类型来声明, in ...
随机推荐
- leetcode 688. “马”在棋盘上的概率
题目描述: 已知一个 NxN 的国际象棋棋盘,棋盘的行号和列号都是从 0 开始.即最左上角的格子记为 (0, 0),最右下角的记为 (N-1, N-1). 现有一个 “马”(也译作 “骑士”)位于 ( ...
- mestasploit笔记 :MS17-010
实验环境 操作机 :Kali 2017 操作机IP:172.16.11.2 目标机:Windows 7 目标机IP:172.16.12.2 实验目的 认知Windows远程溢出漏洞的危害 知悉MS17 ...
- Systemd笔记
Systemd管理的启动脚本位于 /usr/lib/systemd/system/ 下 Systemd启动顺序约定为: 当前服务满足启动条件, 则立即创建进程进行并行启动, 启动条件指服务的依赖关系( ...
- 添加QDialog的Layout布局属性操作
转载:https://blog.csdn.net/u013015629/article/details/73874773 QDialog在创建完之后,在设计器QtDesigner中的布局默认是锁定的. ...
- react 核心技术点
1.react生命周期 react生命周期分为初始化阶段.运行阶段.销毁阶段. (1) 初始化阶段: componentWillMount:实例挂载之前 Render:渲染组件 componentDi ...
- 求解未知数——yjy题库
/* 未知数 p1,p2,p3,p4,p5,满足: (1) p1 与 p3 均为 2 位的正整数:p5 为 3 位的正整数: (2) p2 与 p4 低两位(例:数值‘123’取低两位则为‘23’)数 ...
- sql 时间段交叉查询是否有交集
--双11活动结束时间大于当前服务器时间代表有效期的活动 --实现1 select * from ProdCar A where A.EndDate> GETDATE() and A.EndDa ...
- Ant Design Pro Vue 时间段查询 问题
<a-form-item label="起止日期" :labelCol="{lg: {span: 7}, sm: {span: 7}}" :wrapper ...
- js 动态加载 jq
var script=document.createElement("script"); script.type="text/javascript"; scri ...
- maven基础依赖外部lib包(依赖钉钉sdk为例)
jar包放置位置 pom.xml指定依赖 1 <dependencies> 2 <!--钉钉工具包,如缺失请到钉钉服务器开发文档下载--> 3 <dependency&g ...