zoukankan      html  css  js  c++  java
  • 字符串的常用方法

    字符串在我们的程序中呗大量使用,他的一些方法你都了解吗?

    1、字符串的定义
    语法:
    string <name>;
    <name> = <value>;

    string <name> = <value>;

    字符串是引用类型,在定义
    string <name>;
    的时候在栈空间中,定义了一个<name>的空间,该空间存放一个地址
    当写到
    <name> = "The C# Programming Language";
    的时候,会在堆内存分配一个空间,存放字符串"The C# Programming Language",并将首地址赋值给<name>
    因此<name>指向定义的字符串

    2、字符串的声明
    字符串string对应MSIL(CTS)中的String,实际上是一个类
    那么以前了解到,类需要使用new <构造方法>()来进行实例化,同样字符串也行(这里只介绍一种)
    string <name> = new string(new char[] {...});
    注:这里String与string得到的效果一样

    这里有个应用
    字符串是不可变的,在内存中字符串一旦生成,将不会改变
    即使之前使用的str1 + str2也只是生成了另一个字符串
    那么要修改字符串,怎么处理呢?
    这里有个方法
    <strName>.ToCharArray();
    该方法会将字符串,变成一个char类型的数组,因此需要用一个char类型的数组接收

    例:修改一个字符串里面的内容
    char[] ch = <strName>.ToCharArray();
    // 处理字符数组,完成修改目的
    <strName> = new string(ch);

    3、字符串可以用索引访问
    字符串,原本就是排在一起的字符,C#提供了用“下标”(索引)来访问字符串中的字符
    例如:
    string str = "jiangkun";
    这里内存中将“j”分配编号0,“i”分配编号1,然后依次增加...
    因此,如果需要访问k,数一数,编号是5,所以可以这么来
    char temp = str[5];
    那么得到的就是字符“k”

    字符串也有一个Length属性,可以得到字符串的长度


    4、常见的字符串方法

    4.1 字符串大小写(字符)
    string <strName>.ToUpper();
    string <strName>.ToLower();
    例:在等待用户输入的时候,常常不考虑用户输入的用户名大小(或一个程序中规定使用的大小写)
    可以将用户的输入全部转换成小写、或大写再来进行比较
    如:
    Console.WriteLine("请输入用户名");
    string uid = Console.ReadLine().ToLower();
    // 再将uid与系统中的数据进行比较

    4.2 移除首尾指定字符
    方法原型
    string <strName>.Trim(); // 移除首尾的空格
    string <strName>.TrimStart(); // 移除开头的空格
    string <strName>.TrimEnd(); // 移除结尾的空格
    如果要指定移除的内容,可添加一个char数组作为参数
    string <strName>.Trim(char[] ch);

    例:在用户输入的时候,一般不考虑输入两边的空格,而使用Trim()方法

    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

    Equals()方法
    方法原型
    bool <strName>.Equals(string str);
    比较如果相等返回true,否则返回false

    注: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(' ',',','?');

    注:返回的数组中可以有空字符串项,如果要去掉这些空字符串项,可以使用
    string[] <strName>.Split(char[] separator,StringSplitOptions.RemoveEmptyEntries);

    因此例子可改为
    string str = "Hello, How are you?";
    string[] words = str.Split(new char[]{' ',',','?'},StringSplitOptions.RemoveEmptyEntries);

    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}中包含{1}",str,"abc");
    }
    else
    {
    Console.WriteLine("字符串{0}中不包含{1}",str,"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.IndexOf("蒋 坤");
    Console.WriteLine(res1 + " " + res2);

    注:LastIndexOf方法从最后一个开始匹配

    IndexOpAny方法
    方法原型:
    int <strName>.IndexOfAny(char[] anyOf);
    寻找字符数中的所有内容,返回第一个的位置

    同样有两个参数的重载
    int <strName>.IndexOfAny(char[] anyOf, int startIndex);

    4.6 求子字符串
    方法原型
    string <strName>.Substring(int startIndex, 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(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);


    注:字符串具有不可变性,对字符串的修改,实际上都是重新得到一个字符串,重新赋值

  • 相关阅读:
    利用DTrace实时检测MySQl
    改进MySQL Order By Rand()的低效率
    RDS for MySQL查询缓存 (Query Cache) 的设置和使用
    RDS For MySQL 字符集相关说明
    RDS for MySQL 通过 mysqlbinlog 查看 binlog 乱码
    RDS for MySQL Mysqldump 常见问题和处理
    RDS for MySQL Online DDL 使用
    RDS MySQL 表上 Metadata lock 的产生和处理
    RDS for MySQL 如何使用 Percona Toolkit
    北京已成为投融资诈骗重灾区:存好骗子公司黑名单,谨防上当!
  • 原文地址:https://www.cnblogs.com/a164266729/p/3289643.html
Copyright © 2011-2022 走看看