字符串基础总结

字符串的常用方法

1,字符串的语法定义:string strName;strName = value;或者是string name = value ;这两种定义方式是等价的。字符串是引用类型,在定义 string strName的时候在栈空间中,定义了一个strName的空间,该空间存放一个内存地址;而当进行变量复制操作strName = "The C# Programming Language"的时候,系统会在堆内存分配一个内存空间,该内存空间存储"The C# Programming Language"值,并且将该内存空间的首地址赋值给strName,即栈内存空间是存储对应堆内存空间的首地址,而堆内存空间则才是正真存储数据。

2,字符串的声明

字符串string对应MSIL(CTS)公共类型系统中的String,实际上是一个类,那么以前了解到,类需要使用new<构造方法>()来进行实例化,同样字符串也可以通过此方式进行实例化3一个变量;例如: string strName = new string(new char[]{...});

备注:这里的String和string等价的效果。

字符串的特性:字符串是不可变的,在内存中字符串一旦生成,内存的数据将不会改变,即使是使用str1 = str1 + str2操作,也只是在内存中重新申请内存空间来存储str1 + str2操作后的结果。那需要修改字符串是怎么处理?这里介绍一个方法strName.ToCharArray(),该方法会将字符串编程一个char类型的数组,因此需要用一个char类型的数组接收。

例如:修改字符串里面的内容  char[] ch = strName.ToCharArray(); for(int i =0;i< ch.length;i++){ 进行处理需要修改的数据} strName = new string(ch);//这里将修改后的字符串赋值给strName.

3,字符串使用索引访问

字符串原本就是排列在一起的字符组成的,C#提供了用"下标"(索引)来访问字符串中的字符,例如:

string strName ="andyWqh";在这里内存中将‘a‘分配编号为0,‘n‘分配的编号为1,后面的字符的编号依次递增。因此,如果需要访问‘W‘,则必须通过循环遍历该字符串的每一个字符,找到编号为4,所以可以这么来访问:char ch = strName[4];即可获取‘W‘字符。

备注:字符串有一个Length属性,通过strName.Length可以得到该字符串的总长度。

4,常见的字符串方法:

4.1 字符串的大小写(正对字符串里每一个字符而言)

所有字符变成大写:string strName.ToUpper();

所有字符变成小写:string strName.ToLower();

4.2 移除字符串的首尾指定字符

方法原型: string strName.Trim();//移除字符串strName的首位空格

string strName.TrimStrat();//移除字符串strName开头的空格

string strName.TrimEnd();//移除字符串strName的结尾处的空格

若果需要指定移除的内容,则可以添加一个char数组作为参数 string strName.Trim(char[] ch);

 4.3  字符串的比较方法

Compare()方法原型:int string.Compare(string str1,string str2);

按照字典排序进行比较:当 str1 > str2时返回1;

当 str1 = str2时返回0;

当str1 < str2时返回-1;

备注:int string.Compare(string str1,string str2,bool ignoreCase)表示是否区分大小写,ignoreCase为true表示不区分大小写,默认值为false;

Equals()方法原型 bool strName.Equals(string str);比较结果若是相等则返回true,否则返回false。

备注: bool strName.Equals(string str,String.Comparison。OrderinaIgnoreCase)表示不区分大小写,若只是仅仅比较两个字符串是否相等,则使用"=="运算比较简单。

  4.4 字符串的合并和分隔

合并join方法:将数组strArray中的内容拼接成一个字符串,并在对应的数组每两项之间增加分隔符str; strName.Join(str,strArray)。

方法原型:string strName.Join(string str,string[] strArray);

字符串分隔Split方法

方法原型:string[] strName.Split(params char[] separator);将字符串strName以separator中的字符进行分隔,分隔后返回得到的内容存储到数组中;返回的数组中可以有空字符串项,如果想要去掉这些空字符串项,则可以使用string[] strName.Split(char[] separator,StringSplitOptions.RemoveEmptyEntries).

4.5 字符串的查询

Contains()方法

方法原型:bool strName.Comtains(string str);表示字符串strName中是否包含str,如果包含则返回true,否则返回false.

IndexOf()方法

常用的两种方式:a) int strName.IndexOf(string str)从头开始查询到第一次出现str的下标。b) int strName.IndexOf(string str,int startIndex)从startIndex开始,出现第一次的下标。如果没有找到则直接返回-1. LastIndexOf()睡觉哦从最后一个字符开始进行匹配。

IndexOpAny()方法

方法原型: int strName.IndexOfAny(char[] anyOf)寻找字符串中的所有内容,返回第一个字符的位置。同样有一个重载方法 int strName.IndexOfAny(char[] anyOf,int startIndex);

4.6 求子字符串方法

string strName.Substring(int stratIndex,int length)从字符串strName的startIndex位置开始提取长度为Length的字符串,如果省略第二个参数则表示一直到最后的字符。

4.7 字符串的插入,移除和替换操作

4.7.1 插入操作

在字符串strName的index位置上插入str,原来的字符依次往后移动,变成一个新的字符串 strName = strName.Insert(index,str);

方法原型: string strName.Insert(int index,string str);

4.7.2  移除操作

在字符串strName中移除从startIndex开始,长度为Length的字符串,剩下的字符串按原有顺序合并为一个新的字符串。  strName= strName.Remove(startIndex,length);

方法原型: string strName.Remove(stratIndex,int length) ;如果省略第二个参数,将移除startIndex后所有的字符串。

4.7.3  替换操作

将字符串strName 中的oldChar替换为newChar strName = strName.Replace(oldChar,newChar);

方法原型:string strName.Replace(string oldValue,string newValue);

4.8 判断结束与开始

判断字符串strName是否已某字符串开始或者结束

bool strName.StartsWith(string str)判断开始

bool strName.EndsWith(string str)判断结束

时间: 2024-11-09 23:01:52

字符串基础总结的相关文章

Python&lt;3&gt;字符串基础

字符串是单个字符的字符串序列,有序字符的集合. Python允许字符串包括在双引号或单引号中(代表相同的东西). 序列操作 <1>索引 正向索引,反向索引 <2>分片 包括左边,不包括右边 左边默认为0,右边默认为len(str) 可以设置读取的间隔 <3>合并+.重复* 不可变性 创建后就不能被改变,不能对某一位置赋值 常用表达式 <1>str='' :空字符串 <2>str1.find(str2):返回子字符串的偏移量 <3>st

[ Perl 6 ] 字符串基础操作

[ Perl 6 ] 字符串基础操作 There is more than one way to do it. 字符串转换为列表:"banana".comb; # => (b a n a n a) 字符串长度:chars "banana"; "banana".chars; # => 6 字符串查找: index "banana", "na"; # => 2 index "bana

c#编程基础之字符串基础

1.C#中单个的字符串用单引号包含就是char类型,('a'),单引号中放且只能放一个字符 2.单个字符也可以表示为字符串,还可以有长度为0的字符串. 3.使用s.Length属性来获得字符串中的字符个数. 4.string 可以看做是char类型的只读数组.char c=s[1];例子:遍历输出string中的每个元素. 5.c#中字符串有一个重要的特性:不可变性.字符串一旦声明,就不再可以改变. 所以只能通过索引来读取指定位置的char,不能对指定位置的char进行修改. 6.如果要对cha

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.E

UVa 10340 字符串基础

背景:小紫书习题,开始数组开小了runtime error了一次,显然数组越界.复杂度:O(max(A的长度,B的长度)). 题意:看字符串A是不是字符串B的子串.直接顺序扫描即可. #include<stdio.h> #include<string.h> char str[1000000],ttr[1000000]; int main(void){ while(scanf("%s %s",str,ttr)!=EOF){ int j=0,sj=strlen(st

JavaScript数组和字符串基础

数组的一些常用用法及练习 Array.concat( ) 连接数组 练习:    var arr=[1,2,3,4,5];     arr1=[7,8,9];     document.write(arr.concat(arr1[0]))//返回1,2,3,4,5,7 Array.join( ) 将数组元素连接起来以构建一个字符串  Array.length 数组的大小 Array.pop( ) 删除并返回数组的最后一个元素 练习:     var arr=[1,2,3,4,5]     doc

HDU字符串基础题(1020,1039,1062,1088,1161,1200,2017)

并不是很精简,随便改改A过了就没有再简化了. 1020. Problem Description Given a string containing only 'A' - 'Z', we could encode it using the following method: 1. Each sub-string containing k same characters should be encoded to "kX" where "X" is the only c

python3——字符串基础

字符串可以使用一对单引号或一对双引号指定起止位置,两种方式指定的字符串完全等价. 如'Hello'和"World" 可以用三引号("""或''')指定多行字符串,其中可自由使用单.双引号而不需转义. 如'''"What's your name?," I asked.''' 字符串过长不方便写在一行时,可以使用反斜杠跨行而不增加换行符. 如: "abcde\ fgh" 等价于"abcdefgh" 如

python字符串基础知识

1.python字符串可以用"aaa",'aaa',"""aaa""这三种方式来表示 2.python中的转义字符串为"r",C#里面为@逐字符 3.使用index获取字符串的某个字符:如字符串str="abcd123456" ,使用str[3]得到一个字符d 4.使用[startindex:endIndex]截取字符串,如:str[2:3],结果为:c,这里注意的一点:截取的字符串包括开始字符(

Python字符串基础操作

==============字符串======== >>> s1='www.baidu.com' >>> type(s1) <type 'str'> >>> type(2) <type 'int'> >>> type("'dsfdsjk'") <type 'str'> 用type()测一下是什么类型 字符串的访问 s1[0]=’  s1[2]=w  用下标来访问 >>