string类和stringBuilder类
字符串是C#中的一种重要数据类型,在项目开发中,离不开字符串操作。C#提供了string类实现字符串操作。于Convert类相似,string类中方法有静态方法和非静态方法。注意,在C#中String和string可以认为是相同的,为了书写简便,我们统一采用小写string.。
1. 静态方法
使用“string.方法名”格式调用。
(1). 字符串比较
格式: String.Compare(str1,str2);
比较两个字符串str1和str2大小,若str1大于str2,测返回1;若是小于测返回-1;相等返回0。
string str1 = "test";
string str2 = "t":
Console.WritLine(String.Compare(str1,str2));
程序输出结果为: 1;
两个字符串比较,字符串中第一个不相同字符的ASCLL码大的字符串较大。
(2). 字符串复制
格式: String.Copy(str);
创建一个与指定字符串具有相同值的新字符串实例。使用String.Copy(str)是在内存中开辟新的存储空间,并复制字符串str,得到一个新的字符串实例。例如
string str1 = "test";
string str1 = string.Copy(str1);
Console.WriteLine(str2);
程序输出结果为: test
【TIPS】
下面的代码也是合法的,执行完毕后str1,str2指向内存中的同一个字符串。
string str1 ="test";
string str2 = str1;
(3). 字符串判等
string.Equals(str1,str2);
判断两个字符串str1和str2是否相等。相等,则返回True,否则返回false。
【TIPS】
string.Equals(str1,str2) 与str1 == str2的作用相同。
(4). 字符串合并
string.Join(separator,arr),其中separator为字符串,arr为字符串数组
将字符串数组arr中的所有字符串合并成一个字符串,相邻字符串之间添加分隔符。例如:
string [] a ={"hello","world"};
Console.WriteLine(string.Join(",",a));
2. 非静态方法
使用“对象名.方法名”格式调用。
(1). 字符串比较
对象名.CompareTo(string str);
比较字符串对象与字符串str的大小,返回值规则与String.Compare()相同。
string str1 = "test";
string str2 = "hello":
Console.WritLine(str1.CompareTo(str2));
程序输出结果为 1;
(2). 判断是否包含给定字串
判断字符串对象中是否包含子字符串str。是则返回True,否则返回false。例如:
string str1 = “hello world”:
string str2 = “hello”;
Console.WriteLine(str1.CompareTo(str2));
程序输出结果为: True;
(3).查询给定子串位置
对象名.IndexOf(str)
查询字符串对象中给定字符串str首次出现的位置,如果子字符在字符串对象中不存在,则返回-1。 例如
string str1 = “hello world”:
string str2 = “world”:
Console。WriteLine(str1.IndexOf(str2));
程序输出结果为:6;
也可以指定在字符串对象中查找子串的起始位置:
Console.writeLine(str1.Indexof(str2,));/*从字符串数组str1中下标为7的字符开始查找*/
则程序输出结果变为:-1;
(4).查找字符串是否包含给定字符数组中的字符
对象名.IndexOfAny(arr ),arr为字符串数组
查找字符串对象中是否包含字符数组arr中的任一字符元素。如果有,则返回第一个出现的字符元素的位置。如果未能在字符串数组中的任意一个字符,则返回-1。例如:
string str1 = “hello world”;
char[] s = {'a','b','c','d'};
Console.WriteLine(str1.IndexOfAny(s));
程序输出结果为:10;
(5)插入字串
对象名.Insert(startindex,str),startindex为整型值,str为字符串。
在字符串对象的给定位置(startindex)插入子串str。例如:
string str1 = “hello world”;
Console。WriteLine(str1.Insert(,"text"));
程序输出结果为: htestello world;
(6)删除子串
对象名.Remove(startindex),startindex为整型值。
删除此字符串从指定位置到最后位置的所有字符。
对象名.Remove(startindex,count),startindex,count为整型值。
删除此字符串从指定位置开始的count个字符。
例如:
string str1 = “hello world”;
Console.WriteLine(str1.Remove());
Console.WriteLine(str1.Remove(,));
程序输出结果为:
hello
world
(7)替换字串
对象名.Replace(substr1,substr2),substr1,substr2为字符串。
将字符串中的所有子串substr1替换为substr2。
例如:
string str1 = "hello World";
Console.WriteLine(str1.Replace("world","China"));
string str2 =“Like”:
Console.WriteLine(str.Replace('L','N'));
程序输出结果为:
hello china
Nike
(8).拆分字符串
对象名.Split(chararr),chararr为字符数组
将字符串拆分成若干子字符串,存入一个字符串数组,以字符数组chararr中的字符作为分隔符,遇到分隔符,则产生一个新的字符串。
(9)去空格
对象名.Trim(); //去掉字符串首尾的空格,字符串中间的空格不受影响。
对象名.TrimEnd(); //去掉字符串尾部的空格
对象名.TrimStart(); //去掉字符串首部的空格。
stringBuilder类
string类在进行字符串运算(如赋值,字符串连接等)时会产生一个新的字符串实例,需要为新的字符串实例分配内存空间,相关的系统开销会非常昂贵。如果要修复字符串而不创建新的对象,且操作次数非常多,则可以使用StringBuilder类。例如,在一个顺序中将许多字符串连接在一起时,可以使用StringBuilder类。StringBuilder类在原有字符串的内存空间上进行操作,使用Stringbuilder类可以提升性能。
string类和stringBuilder类的更多相关文章
- Java学习笔记20(String类应用、StringBuffer类、StringBuilder类)
1.获取指定字符串中大小写和数字的个数: package demo; public class StringTest { public static void main(String[] args) ...
- 一大波Java来袭(四)String类、StringBuilder类、StringBuffer类对照
本文主要介绍String类.StringBuffer类.StringBuilder类的差别 : 一.概述 (一)String 字符串常量.可是它具有不可变性,就是一旦创建,对它进行的不论什么改动操作 ...
- StringBuffer类 和 StringBuilder类
上一篇中讲解了String类的用法.那么String有什么特点呢? 字符串特点:字符串是常量,其值在创建后就不能被修改.字符串的内容一旦发生变化,就会创建一个新的对象. 代码验证字符串特点: publ ...
- Java基础-StringBuffer类与StringBuilder类简介
Java基础-StringBuffer类与StringBuilder类简介 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.StringBuffer类 在学习过String类之后 ...
- StringBuffer类和StringBuilder类
StringBuffer类和StringBuilder类 三者比较 String 不可变字符序列 底层用char[]存储 StringBuffer 可变的字符序列 线程安全的 效率低 底层结构使用ch ...
- Java学习笔记 02 String类、StringBuilder类、字符串格式化和正则表达式
一.String类一般字符串 声明字符串 >>String str 创建字符串 >>String(char a[])方法用于将一个字符数组创建为String对象 >> ...
- 数据结构和算法 – 4.字符串、 String 类和 StringBuilder 类
4.1.String类的应用 class String类应用 { static void Main(string[] args) { string astring = "Now is The ...
- java中String类、StringBuilder类和StringBuffer类详解
本位转载自http://www.cnblogs.com/dolphin0520/p/3778589.html 版权声明如下: 作者:海子 出处:http://www.cnblogs.com/dolp ...
- Java 中 String 类和StringBuilder 类的常用方法
String 类提供了许多用来处理字符串的方法,例如,获取字符串长度.对字符串进行截取.将字符串转换为大写或小写.字符串分割等,下面我们就来领略它的强大之处吧. String 类的常用方法: 结合代码 ...
随机推荐
- [转]MyBatis中resultType与resultMap区别
MyBatis中关于resultType和resultMap的具体区别如下: MyBatis中在查询进行select映射的时候,返回类型可以用resultType,也可以用resultMap.resu ...
- JDK动态代理实例
最近看<深入浅出MyBatis技术原理与实战>这本书时,里面讲到Mapper接口的内部实现是通过JDK动态代理生成实现类,联想到之前看<SPRING技术内幕>这本书里也常常提到 ...
- MongoDB索引的种类与使用
一:索引的种类 1:_id索引:是绝大多数集合默认建立的索引,对于每个插入的数据,MongoDB都会自动生成一条唯一的_id字段2:单键索引: 1.单键索引是最普通的索引 2.与_id索引不同,单键索 ...
- DP-动态规划算法实例:拿糖果问题
拿糖果问题 问题描述 妈妈给小B买了N块糖!但是她不允许小B直接吃掉. 假设当前有M块糖,小B每次可以拿P块糖,其中P是M的一个不大于根号下M的质因数.这时,妈妈就会在小B拿了P块糖以后再从糖堆里拿走 ...
- Vivado HLS初识---阅读《vivado design suite tutorial-high-level synthesis》(2)
Vivado HLS初识---阅读<vivado design suite tutorial-high-level synthesis>(2) 1.实验目的 2.启动命令行 将命令行切换 ...
- 《JavaScript设计模式与开发》笔记 6.高阶函数
1.函数作为参数传递 1.回调函数 2.Array.prototype.sort 2.函数作为返回值输出 1.判断数据的类型 3.高级函数的实现AOP 4.高阶函数的其他应用 1.currying 函 ...
- Action<T> Delegate
来源:https://docs.microsoft.com/zh-cn/dotnet/api/system.action-1?view=netframework-4.7.2 Action<T&g ...
- 关于RabbitMQ分布式集群架构
RabbitMQ分布式集群架构和高可用性(HA) (一) 功能和原理 设计集群的目的 允许消费者和生产者在RabbitMQ节点崩溃的情况下继续运行 通过增加更多的节点来扩展消息通信的吞吐量 1 集群配 ...
- 【mysql】linux查看mysql配置文件my.conf
mysql --help|grep 'my.cnf' /etc/my.cnf, /etc/mysql/my.cnf, /usr/local/etc/my.cnf, ~/.my.cnf 这些就是mysq ...
- 安装包制作工具 SetupFactory 详解
Setup Factory 是一个强大的安装程序制作工具.提供了安装制作向导界面,即使你对安装制作不了解,也可以生成专业性质的安装程序.可建立快捷方式,也可直接在 Windows 系统的注册表加入内容 ...