字符串的使用(常用方法)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
字符串的使用(常用方法)
1、字符串的定义
语法:
string
或
string
字符串是引用类型,在定义
string
的时候在栈空间中,定义了一个
当写到
的时候,会在堆内存分配一个空间,存放字符串"The C# Programming Language",并将首地址赋值给
因此
2、字符串的声明
字符串string对应MSIL(CTS)中的String,实际上是一个类
那么以前了解到,类需要使用new <构造方法>()来进行实例化,同样字符串也行(这里只介绍一种)
string
注:这里String与string得到的效果一样
这里有个应用
字符串是不可变的,在内存中字符串一旦生成,将不会改变
即使之前使用的str1 + str2也只是生成了另一个字符串
那么要修改字符串,怎么处理呢?
这里有个方法
该方法会将字符串,变成一个char类型的数组,因此需要用一个char类型的数组接收
例:修改一个字符串里面的内容
char[] ch =
// 处理字符数组,完成修改目的
3、字符串可以用索引访问
字符串,原本就是排在一起的字符,C#提供了用“下标”(索引)来访问字符串中的字符
例如:
string str = "jiangkun";
这里内存中将“j”分配编号0,“i”分配编号1,然后依次增加...
因此,如果需要访问k,数一数,编号是5,所以可以这么来
char temp = str[5];
那么得到的就是字符“k”
字符串也有一个Length属性,可以得到字符串的长度
4、常见的字符串方法
4.1 字符串大小写(字符)
string
string
例:在等待用户输入的时候,常常不考虑用户输入的用户名大小(或一个程序中规定使用的大小写)
可以将用户的输入全部转换成小写、或大写再来进行比较
如:
Console.WriteLine("请输入用户名");
string uid = Console.ReadLine().ToLower();
// 再将uid与系统中的数据进行比较
4.2 移除首尾指定字符
方法原型
string
string
string
如果要指定移除的内容,可添加一个char数组作为参数
string
例:在用户输入的时候,一般不考虑输入两边的空格,而使用Trim()方法
4.3 字符串的比较
Compare()方法
方法原型
int pare(string str1,string str2);
按照字典排序比较
当str1 > str2时
,返回1
当str1 = str2时,返回0
当str1 < str2时,返回-1
注:int pare(string str1,string str2,bool ignoreCase)表示是否区分大小写
这里true表示不区分大小写,默认为false
Equals()方法
方法原型
bool
比较如果相等返回true,否则返回false
注:bool
注:如果仅仅比较两个字符串是否相等,还是使用“==”比较简单
例如:
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[]
将字符串
例:
// 分析这句话,提取这句话的单词
string str = "Hello, How are you?";
string[] words = str.Split(' ',',','?');
注:返回的数组中可以有空字符串项,如果要去掉这些空字符串项,可以使用
string[]
因此例子可改为
string str = "Hello, How are you?";
string[] words = str.Split(new char[]{' ',',','?'},StringSplitOptions.RemoveEmptyEntries);
4.5 字符串查找
Contains方法
方法原型:
bool
表示字符串
例:
Console.WriteLine("随便输入一串字母");
string str = Console.ReadLine();
if(str.Contains("abc"))
{
Console.WriteLine("字符串{0}中包含{1}",str,"abc");
}
else
{
Console.WriteLine("字符串{0}中不包含{1}",str,"abc");
}
IndexOf方法(LastIndexOf)
常用的两种形式:
int
int
如果没有找到则返回-1
例:
string str = "C#语言基础,讲师蒋坤";
int res1 = str.IndexOf("蒋坤");
int res2 = str.IndexOf("蒋 坤");
Console.WriteLine(res1 + "\n" + res2);
注:LastIndexOf方法从最后一个开始匹配
IndexOpAny方法
方法原型:
int
寻找字符数中的所有内容,返回第一个的位置
同样有两个参
数的重载
int
4.6 求子字符串
方法原型
string
从字符串
4.7 字符串的插入、移除和替换
4.7.1 插入
在字符串
方法原型为:
string
4.7.2 移除
在字符串
方法原型为:
string
注:如果省略第二个参数,将移除startIndex后的所有字符串
4.7.3 替换
将字符串
方法原型:
string
同样,这个替换的字符也可以是字符串
string
4.8 判断结束与开始
判断字符
bool
bool
注:字符串具有不可变性,对字符串的修改,实际上都是重新得到一个字符串,重新赋值
字符串处理练习
课上练习1:接收用户输入的字符串,将其中的字符以与输入相反的顺序输出。"abc"→"cba"
课上练习2:接收用户输入的一句英文,将其中的单词以反序输出。"hello c sharp"→"sharp c hello"
课上练习3:从Email中提取出用户名和域名:abc@。
课上练习4:文本文件中存储了多个文章标题、作者,标题和作者之间用若干空格(数量不定)隔开,每行一个,标题有的长有的短,输出到控制台的时候最多标题长度10,如果超过10,则截取长度8的子串并且最后添加“...”,加一个竖线后输出作者的名字。
(string[] System.IO.File.ReadAllLines(文件路径, Encoding.Default));
让用户输入一句话,找出所有e的位置