关于字符串的常用方法

来源:互联网 发布:秦皇岛相对湿度数据 编辑:程序博客网 时间: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);
注:字符串具有不可变性,对字符串的修改,实际上都是重新得到一个字符串,重新赋值

原创粉丝点击