关于字符串的常用方法
来源:互联网 发布:秦皇岛相对湿度数据 编辑:程序博客网 时间:2024/06/06 10:51
1:字符串的定义
语法:
string <name> ;
<name>=value;
或者
string <name>=<value>;
字符串是引用类型,在定义 string<name>的时候,在栈空间里,定义了一个<name>的空间,当写到name="TTdsfdsfdsf123123";的时候,会在栈堆里面给它分配一个空间,用来存放
"TTdsfdsfdsf123123",并将首地址赋值给<name>,因此<name>才会指向定义的字符串.
2.字符串的声明
字符串string对应MSIl(CTS)中的string,实际上是一个类,以前了解到类需要实例化,new 构造方法(),同样字符串也行,
string<name>=new string (new char[]{.......});
其中string 和String效果是一样的.
(字符串是不可变的,在内存中声明之后,则不可以改变
即使使用str+str1,也只是重新生成了一个新的字符串)
可是如果要修改字符串该怎么办?
可以这样来写:
<strname>.ToCharArray();
该方法会将字符串变成一个char[]类型的数组,因此需要一个char[]类型的数组来接收.
例如:
char[] ch=<strname>.TocharArray();
<strname>=new string(ch);
3.字符串可以用索引来访问
字符串本来就是一个一个字符组成的,C#提供了下标(索引)来进行访问
例如 str="abcdefg";
其中 a的下标就是0,b的下标就是1,依次类推,所以可以这样来寻找需要的字符
char temp=str[5]; 得到的就是e.
字符串也有一个length属性,用来获取字符串的长度.
4.常见的字符串方法
4.1字符串大小写(字符)
string <strName>.ToUpper();
string <strName>.ToLower();
例如:
在等待用户输入的时候,常常可以不用考虑用户输入的是大写还是小写,可以统一的将用户输入的字符串转换成大写活着小写,然后再来进行比较.
Console.WriteLine("请输入一段字符串:");
string str=Console.ReadLine().ToUpper();
然后再进行比较.
例如:
string str = "AbCdEf";
string str2 = str.ToLower();
Console.WriteLine(str2);
4.2移除首位指定字符
方法原型:
string <strName>.Trim();//移除首部和尾部的空格
string<strName>.TrimStart();//移除开头空格
string <strName>.TrimEnd();//移除尾部空格
如果需要移除指定字符,可以添加一个Char数组作为参数
string <strName>.Trim(char[] ch);
例如:
string str = @"C:\A\b\c\d\e\f\大地.mp3";
// 将歌曲名取出,修改成lrc结尾的名字
str = str.Trim('.', 'm', 'p', '3') + ".lrc";
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)表示是否区分大小写,这里True表示不区分大小写,默认为False;
例如:
int str1=10;
int str2=3;
int res=string.Compare(str1,str2);
Console.WriteLine(res);
Equals()方法
方法原型:
bool <strName>.Equals(string str);
比较结果如果相等返回True,否则返回False.
例如:
string str1 = "10";
string str2 = "3";
str1.Equals(str2);
注:
bool <strName>.Equals(string str,stringComparison.OrdinaLIgnoreCase);表示不区分大小写.
如果仅仅判断两个字符串是否相等,完全可以使用"=="比较简单
例如:
Console.WriteLine("请输入一个字符串");
string str1 = Console.ReadLine();
Console.WriteLine("请输入第二个字符串");
string str2 = Console.ReadLine();
// 不考虑大小写的比较
bool isEqual = str1.ToLower() == str2.ToLower();
4.4字符串合并与分割
合并Join方法
将数组strArr中的内容拼接成一个字符串,并在对应数组的每两项间添加分隔符str
string.join(str,strarr);
方法原型:
string string.join(string str,string[] strarr);
字符串分割Split方法
方法原型:
string[]<strName>.Split(params char[] separator);
将字符串<strname>以separator数组中的字符分割,分割后得到的内容存到一个数组当中
例如:
提取下面一句话中的单词
string str="hello,How are you?";
string[] words=str.split'(' ',' ,','' !','?');
注:
返回的数组里面可能有空字符串,如果要去掉这些空字符串可以使用下面的方法
stirng[] <strName>.Split(char[] separator,StringSplitOptions.RemoveEmptyEntries);
因此,例子可以改为
String str="Hello, How are you?";
String [] words=str.Split(new char[] {' ',',','!','?'},StringSplitOptions.RemoveEmptyEntries);
例如:
string[] strs={"张飞","李四","王五"};
string s=string.join("|",strs);
Console.WriteLine("请输入一句话:");
string language=Console.ReadLine();
string [] s=language.Split(new cahr[] {' ',',','!','?'},StringSplitOptions.RemoveEmptyEntries);
for(int i=0;i<s.length;i++)
{
Console.WriteLine(s[i]);
}
Console.Readkey();
4.5字符串查找
Contains方法:
方法原型:
bool <strName>.Contains(string str);
表示字符串<strName>中是否包含str,如果包含,返回true,否则返回false.
例:
Console.WriteLine("请随便输入一串字符串:");
string str=Console.ReadLine();
if(str.Contains("abc"))
{
Console.WriteLine("字符串中包含{0}","abc"):
}
else
{
Console.WriteLine("字符串中不包含{0}","abc");
}
IndexOf方法
常用的两种形式:
int<strName>.IndexOf(string str);//从头开始,出现第一次的下标
int<strName>.IndexOf(string str, int startIndex);//从startIndex开始,出现第一次的下标
如果没有找到,则返回-1
例:
string str="C#语言基础";
int res1=str.IndexOf("基础");
int res2=str.LastIndexOf("基础");
注:LastIndexOf()方法是从最后一个开始匹配.
IndexOpAny()方法
方法原型:
int<strName>.IndexOpAny(char[] anyOf);
寻找字符数中的所有内容,返回第一个位置
同样有两个参数的重载
int<strName>.IndexOpAny(char[]anyOf,int stratIndex);
4.6求子字符串
方法原型:
string <strName>.SubString(int strIndex,int length);
从字符串<strName>的startIndex开始提取长度为length的字符串,如果省略第二个参数,则代表一直到最后
4.7字符串的插入,移除,和替换
4.7.1插入
在字符串<strName>的Index的位置上插入str,原来的字符依次后移,重新组成一个新的字符串
<strname>=<strName>.Insert(index,str);
方法的原型:
string <strNmae>.Inset(int index,string str);
4.7.2移除
在字符串<strName>中移除从startIndex开始,长度为length,剩下的字符按原序合并为一个新的字符串.
string <string>=<strName>.Remove(startIndex,length);
方法原型:
string <strName>.Remove(int startIndex,int length);
注:如果省略第二个参数,则从startIndex开始一直移除到最后
4.7.3替换
将字符串<strName>中的oldChar替换成NewChar
<strName>=<strName>.Replace(oldChar,newChar);
方法原型:
string <strName>.Replace(char oldChar, char newChar);
同样,这个替换的字符也可以是字符串
string <strName>.Replace(string oldValue, string newValue);
4.8 判断结束与开始
判断字符<strName>串是否以某字符串开始或结束
bool <strName>.StartsWith(string str);
bool <strName>.EndsWith(string str);
注:字符串具有不可变性,对字符串的修改,实际上都是重新得到一个字符串,重新赋值
- 关于字符串的常用方法
- 关于Objective-C中常用的操作字符串的方法
- iOS 开发 关于字符串 常用的公共方法
- 常用的字符串方法
- 常用的字符串方法
- Java的常用方法--字符串
- 常用的字符串处理方法
- String字符串的常用方法
- 字符串常用的几个方法
- String字符串的常用方法
- 常用的Python字符串方法
- NSString 字符串常用的方法
- 常用的字符串处理方法
- 常用的字符串截取方法
- NSString字符串的常用方法
- iOS 常用字符串的方法
- 字符串的一些常用方法
- OC字符串的常用方法
- Android 天气预报 完整案例详解
- 读用本地数据,写用网络数据, 同时网络更新
- 基数排序与链式基数排序
- 大话设计模式之策略模式(Strategy Pattern)
- 黑马程序员char、varchar、nvarchar之间的区别
- 关于字符串的常用方法
- CCNA实验2 三层交换机
- 在程序崩溃前纪录callback信息
- GOOGLE Python大学教程之Python的dict和文件
- Hadoop MapReduce示例代码
- .NET Interoperability: .NET ↔ Win32
- linux用户与组的应用
- GOOGLE Python大学教程之Python排序
- Linux用户和组管理