1.1 字符串大小写
 方法原型 
  string <strName>.ToUpper();  //返回字符串转换的大写形式
  string <strName>.ToLower();  //返回字符串转换的小写形式
 例如:用户在输入用户名的时候,可能会大小写输入混乱,但是我们可以转换(全部转换为大写或者全部转化为小写)一下,
 使用户也能够登录成功
     Console.Write("请您输入用户名:");
        //全部转换为大写
        string username = Console.ReadLine();
        string usernameupper = username.ToUpper();
        //全部转换为小写
        string usernamelower = username.ToLower();
        Console.WriteLine("大写是:{0},小写是:{1}", usernameupper, usernamelower);

1.2 移除首尾指定字符
 Trim 移除一组指定字符的首尾匹配项
  方法原型
   (1)string <strName>.Trim();      //移除首尾的空格
    string str = " 韩迎龙 ";
    string firstendnullstr = str.Trim();
    Console.WriteLine(firstendnullstr.Length);   输出信息:3
   (2)string <strName>.Trim(new char[]{'<char>'});   //移除首尾指定的字符(必须是首尾的字符)
    string str = "韩迎龙韩";
    string firstendnullstr = str.Trim(new char[] { '韩' });
    Console.WriteLine(firstendnullstr);   输出信息:迎龙
 TrimStart 移除一组指定字符的开头匹配项
  方法原型
   (1)string <strName>.TrimStart(); //移除开头的空格
    string str = " 韩迎龙 ";
    string firstendnullstr = str.TrimStart();
    Console.WriteLine(firstendnullstr.Length);  输出信息:4
   (2)string <strName>.TrimStart(new char[]{'<char>'}); //移除开头指定的字符
    string str = "韩迎龙韩";
    string firstendnullstr = str.TrimStart(new char[] { '韩' });
    Console.WriteLine(firstendnullstr);     输出信息:迎龙韩
 TrimEnd 移除一组指定字符的结尾指定项
  方法原型
   (1)string <strName>.TrimEnd();   //移除结尾的空格
    string str = " 韩迎龙 ";
    string firstendnullstr = str.TrimEnd();
    Console.WriteLine(firstendnullstr.Length);  输出信息:4
   (2)string <strName>.TrimEnd(new char[]{'<char>'});
    string str = "韩迎龙韩";
    string firstendnullstr = str.TrimEnd(new char[] { '韩' });
    Console.WriteLine(firstendnullstr);     输出信息:韩迎龙

1.3 字符串的比较
 Compare()方法
  方法原型
   (1) int Compare(String,String);   //比较两个字符串对象
    int strCompare=string.Compare("sFsFsF","Sfsfsf"); //输出信息:0
   (2) int Compare(string,String,Boolean)  //比较两个字符串对象,是否忽略大小写
    int  int dou = string.Compare("sdsSD", "sdsSd", true);   //输出信息:0
   (3) int Compare(String,String,StringComparison) //参数指定比较是使用当前区域性还是固定区域性,
    是考虑还是忽略大小写,是使用字排序规则还是序号排序规则。
    int dou = string.Compare("dsdssdD", "dsdssdd", StringComparison.OrdinalIgnoreCase); //输出信息0
  按照字典排序进行比较
   如果strA>StrB,则返回的值大于0
   如果strA=strB,则返回的值等于0
   如果strA<strB,则返回的值小于0
 CompareOrdinal()方法,通过计算每个字符串中相应Char对象的数值来比较
  方法原型
   (1)int CompareOrdinal(String,String)  //通过计算每个字符串中相应的Char对象的数值来比较两个字符串
    int dou = string.CompareOrdinal("a", "c");  //输出结果是:-2
  也是按照字典排序
   如果strA>StrB,则返回的值大于0
   如果strA=strB,则返回的值等于0
   如果strA<strB,则返回的值小于0
 CompareTo()方法,将此实例与指定对象或者String进行比较,并且返回二者相对值的指示
  方法原型
   (1) int CompareTo(Object);  //将此实例与object进行比较
    MyClass my = new MyClass();
    string s = "sometext";
    try
    {
     int i = s.CompareTo(my);
    }
    catch (Exception ex)
    {
     Console.WriteLine(ex.Message);
    }
    public class MyClass { }    
    //输出结果是:对象的类型必须是string类型
   (2) int CompareTo(string);  //将此实例与string进行比较
    string str = "a";
    int s = str.CompareTo("c");  //输出结果是-1
  也是按照字典排序
   如果strA>StrB,则返回的值大于0
   如果strA=strB,则返回的值等于0
   如果strA<strB,则返回的值小于0
 Equals()方法,确定两个String对象是否具有相同的值
  方法原则
   (1)bool Equals(Object); 确定此String实例是否与指定的对象具有相同的值
    StringBuilder sb = new StringBuilder("abcd");
    String str1 = "abcd";
    Console.WriteLine(str1.Equals(sb));
    输出结果:False
   (2)bool Equals(String); 确定此实例是否与另一个指定的String对象具有相同的值
    string str1 = "abcd";
    Console.WriteLine(str1.Equals("abcd"));
    //输出结果是True
   (3)bool Equals(String,String)  确定两个指定的String对象是否具有相同的值
    Console.Write(string.Equals("1234", "1234"));
    //输出结果是True
   (4)bool Equals(String,StringComparison)  确定此字符串是否与指定的 String 对象具有相同的值。
   参数指定区域性、大小写以及比较所用的排序规则。
    string str="HanYingLong";
    Console.WriteLine(str.Equals("hanyinglong", StringComparison.OrdinalIgnoreCase));
    //输出结果是True
   (5)bool Equals(String,String,StringComparison) 确定两个指定的 String 对象是否具有同一值。
   参数指定区域性、大小写以及比较所用的排序规则。
    //Console.WriteLine(string.Equals("AdssdS", "adssds", StringComparison.OrdinalIgnoreCase));
    输出结果True
  返回值是bool类型,所以我们能够判断出来如果结果相等的话就返回True,否则返回False
  注释:如果仅仅比较两个字符串是否相等,还是使用"=="比较简单
   Console.WriteLine("请输入一个字符串");
   string str1 = Console.ReadLine();
   Console.WriteLine("请输入第二个字符串");
   string str2 = Console.ReadLine();
   // 不考虑大小写的比较
   bool isEqual = str1.ToLower() == str2.ToLower();
1.4 字符串的合并和分割
 合并Join方法:在指定 String 数组的每个元素之间串联指定的分隔符 String,从而产生单个串联的字符串。
  方法原型 
   详细介绍:将数组strArr中的内容拼接成一个字符串,并在对应数组的每两项间添加分隔符str
      string.Join(str,strArr);
   (1) string string.Join(String,String[]);
    Console.WriteLine(string.Join("迎", new string[] { "韩", "龙","我" }));
    Console.WriteLine(string.Join("迎", new char[] { '韩', '龙', '我' }));
    //输出结果是:韩迎龙迎我
   (2) string string.Join(String,String[],Int32,Int32)
    String[] val = { "apple", "orange", "grape", "pear" };
    String sep = ",";
    String result = String.Join(sep, val, 1, 2);
    Console.WriteLine(result);
   //输出结果是orange,grape
 分割Split方法:返回的字符串数组包含此实例中的子字符串
  方法原型
   (1)string[] Split(Char[]) //返回的字符串数组包含此实例中的子字符串
    string str = "I Have a Dream";
    string[] divisionstr = str.Split(new char[] { ' ' });
    foreach (string s in divisionstr)
    {
     Console.Write(s);
    }
    //输出结果是:IHaveDream,去掉了空格
   (2)string[] Split(Char[],Int32)  //返回的字符包含此实例中的子字符串,参数指定返回的子字符串的最大数量
    string str = "I Have a Dream";
    string[] divisionstr = str.Split(new char[] { ' ' }, 2);
    foreach (string s in divisionstr)
    {
     Console.Write(s);
    }
    //输出结果:IHave a Dream  ,int count将字符串截为几段的意思
   (3)string[] Split(Char[],StringSplitOptions)  //返回的字符串包含此实例中的子字符串,参数指定是否
   返回空数组元素
    string str = " 梅西| 卡 卡|小龙 ";
    string[] divisionstr = str.Split(new char[] { '|',' ' }, StringSplitOptions.RemoveEmptyEntries);
    foreach (string s in divisionstr)
    {
     Console.Write(s);
    }
    //输出结果是:梅西卡卡小龙
   (4)string[] Split(String[],StringSplitOptions) //返回的字符串包含此实例中的子字符串,参数指定是否
   返回空数组元素
    string str = "梅西|卡卡|小龙";
    string[] divisionstr = str.Split(new string[] { "|" }, StringSplitOptions.RemoveEmptyEntries);
    foreach (string s in divisionstr)
    {
     Console.Write(s);
    }
    //输出结果是:梅西卡卡小龙
   (5)string[] Split(Char[],Int32,StringSplitOptions) //返回的字符串数组包含此字符串中的子字符串,参数
   指定要返回子字符串的最大数量,以及是否要返回空数组元素。
    string str = "梅西|卡卡|小龙";
    string[] divisionstr = str.Split(new char[] { '|' }, 2, StringSplitOptions.RemoveEmptyEntries);
    foreach (string s in divisionstr)
    {
     Console.Write(s);
    }
    //输出结果是:梅西卡卡|小龙
   (6)string[] Split(String[],Int32,StringSplitOptions) //返回的字符串数组包含此字符串中的子字符串,参数
   指定要返回子字符串的最大数量,以及是否要返回空数组元素。
    string str = "梅西|卡卡|小龙";
    string[] divisionstr = str.Split(new string[] { "|" }, 2, StringSplitOptions.RemoveEmptyEntries);
    foreach (string s in divisionstr)
    {
     Console.Write(s);
    }
    //输出结果是:梅西卡卡|小龙
1.5 字符串的查找
 Contains方法:返回一个值,该值指示指定的String对象是否出现在此字符串
  方法原型
   bool <strName>.Contains(String value); //表示字符串<strName>中是否包含value,如果包含,返回True,否则返回False
    Console.Write("请输入一个字符串:");
    string str = Console.ReadLine();
    if (str.Contains("abc"))
    {
     Console.WriteLine("字符串{0}包含{1}", str, "abc");
    }
    else
    {
     Console.WriteLine("字符串{0}不包含{1}", str, "abc");
    }
 IndexOf方法:String或一个或多个字符在此字符串中的第一个匹配项
  方法原型
   (1)int <strName>.IndexOf(String)  指定字符在此字符串中的第一个匹配项的索引
    string str = "让世界变得更美好";
    int res = str.IndexOf("好");
    Console.WriteLine(res);
    //输出结果是:7
   (2)int <strName>.IndexOf(String,Int32) 指定字符串中的第一个匹配项的索引,该搜索从指定字符位置开始
    string str = "让世界变得更美好";
    int res = str.IndexOf("世界变得", 0);
    Console.WriteLine(res);
    //输出结果是:1
 LastIndexOf方法:String或一个活多个字符在此字符串中的最后一个一个匹配项
  方法原型
   (1)int <strName>.LastIndexOf(String) 指定字符在字符串中的最后一个匹配项的索引
    string str = "让世界好得更美好";
    int res = str.LastIndexOf("好");
    Console.WriteLine(res);
    //输出结果:7
   (2)int <strName>.LastIndexOf(String,Int32) 指定字符串中的第一个匹配项的索引,该搜索从指定字符位置开始
    string str = "让世界好得更好美好";
    int res = str.LastIndexOf("得", 4);
    Console.WriteLine(res);
    //输出结果是:4
 IndexOpAny方法 指定字符数组中的任意字符在此实例中第一个匹配项的索引
  方法原型
   (1)int <strName>.IndexOpAny(Char[]) 指定字符数组中的任意字符在此实例中第一个匹配项的索引。
    string str = "地球很美好,我们很喜欢";
    int res = str.IndexOfAny(new char[] { 's', '我' });
    Console.WriteLine(res);
    //输出结果:0
   (2)int <strName>.IndexOpAny(Char[],Int32) 指定字符数组中的任意字符在此实例中第一个匹配项的索引。
   搜索从指定字符位置开始
    string str = "地球很美好,我们很喜欢";
    int res = str.IndexOfAny(new char[] { '球', '我', '喜' }, 0);
    Console.WriteLine(res);
    //输出结果:1
   (3)int <strName>.IndexOpAny(Char[],Int32,Int32)指定字符数组中的任意字符在此实例中第一个匹配项的索引。
   搜索从指定字符位置开始,并检查指定数量的字符位置。
    string str = "地球很美好,我们很喜欢";
    int res = str.IndexOfAny(new char[] { '球', '我', '喜' }, 2, 5);
    Console.WriteLine(res);
    //输出结果:6
 LastIndexOpAny方法和LastIndexOf方法的使用基本相同
1.6 求子字符串
 方法原型
  (1)string <strName>.SubString(Int32)  检索字符串,子字符串从指定的字符开始
   string str = "我爱中国";
            string res = str.Substring(2);
            Console.WriteLine(res);
   输出结果:中国
  (2)string <strName>.SubString(Int32,Int32) 检索字符串,子字符串从指定的字符开始,并且具有指定的长度
   string str = "我爱中国,中华名族万岁";
            string res = str.Substring(2, 5);
            Console.WriteLine(res);
   输出结果:中国,中华
 总结:string <strName>.SubString(int startIndex,int length);
 从字符串strName的startIndex位置开始提取长度为length的字符串,如果省略第二个参数则表示一直到最后
1.7 字符串的插入移除和替换
  字符串的插入
   方法原型
    string <strName>.Insert(Intzv32 startIndex,string value)在此实例中的指定索引位置插入一个指定的 String 实例。
     string str = "我中国";
     string res = str.Insert(1, "爱");
     Console.WriteLine(res);
     输出结果:我爱中国
   总结:在字符串<strName>的startIndex位置上插入value,原来的字符依次后移,变成一个新的字符串
  字符串的移除
   方法原型
    (1)string <strName>.Remove(Int32 startIndex) 删除此字符串中从指定位置到最后位置的所有字符
     string str = "我爱中国日本大和民族";
     string res = str.Remove(4);
     Console.WriteLine(res);
     输出结果:我爱中国
    (2)string <strName>.Remove(Int32 StartIndex,Int32 Length)  从指定位置开始删除指定数目的字符
     string str = "我爱中国日本&大和民族";
     string res = str.Remove(4, 2);
     Console.WriteLine(res);
     
     输出结果:我爱中国&大和民族
   总结:从字符串<strName>中移除StartIndex开始,长度为Length的字符串,剩下的字符按照原来的顺序重新排成
    一个新的字符串,如果省略第二个参数,将移除StartIndex后面的所有的字符串
  字符串的替换
   方法原型
    (1)string <strName>.Replace(char oldchar,char newchar)  将字符串<strName>中的oldchar替换为newchar
     string str = "我爱中华&美国";
     string res = str.Replace('&', '和');
     Console.WriteLine(res);
     输出结果:我爱中华和美国
    (2)string <strName>.Replace(string oldvalue,string new value) 将字符串<strName>中的oldvalue替换为newvalue
     string str = "我爱中华&美国";
     string res = str.Replace("美国", "天朝");
     Console.WriteLine(res);
     输出结果是:我爱中华&天朝  
1.8 判断开始和结束
 StartsWith开始
  方法原型
   bool <strName>.StartsWith(String value) 确定此实例的开头是否与指定的字符串匹配
    string str = "我爱中华";
    bool istrue = str.StartsWith("我哎");
    Console.WriteLine(istrue);
    输出结果是:False
 EndsWidth结束
  方法原型
   bool <strName>.EndsWith(string value) 确定此实例的结尾是否与指定的字符串匹配
    string str = "我爱中华";
    bool istrue = str.EndsWith("中国");
    Console.WriteLine(istrue);
    输出结果:False
1.9 字符串的赋值
 Copy方法
  方法原型
   string String.Copy(string str);  创建一个与指定String具有相同值的String的新实例
    string str = "韩迎龙";
    string res = string.Copy(str);
    Console.WriteLine(res);
    输出结果是:韩迎龙
 CopyTo方法
  方法原型
   string <strName>.CopyTo(int sourceIndex,char[] destination,int destinationIndex,int count)
   //将指定数目的字符从此实例中的指定位置复制到字符数组中的指定位置
   string dest = "Hello world";
            string source = "Goodbye China";
            char[] destArray = dest.ToCharArray();//将dest变成字符数组
            source.CopyTo(8, destArray, 6, 5);//从source的第8个字符起复制5个字符并从destArray的第6个位置开始放
            dest = new string(destArray);//这时dest为"Hello China"
            Console.WriteLine(dest);
   输出结果是:Hello China

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

转载于:https://www.cnblogs.com/nocanstillbb/p/8175759.html

C#字符串操作,转自韩迎龙博客相关推荐

  1. oracle表的历史数据转储过程,C#连接Oracle数据库通过存储过程操作数据库 - cuizm的专栏 - CSDN博客...

    C#连接Oracle数据库通过存储过程操作数据库 收藏 此文于2011-06-07被推荐到CSDN首页 此文于2011-06-08被推荐到CSDN首页 如何被推荐? 之前笔者一直用C#连接SQL Se ...

  2. 回答阿里社招面试如何准备,顺便谈谈对于Java程序猿学习当中各个阶段的建议 - 左潇龙 - 博客园...

    引言 其实本来真的没打算写这篇文章,主要是LZ得记忆力不是很好,不像一些记忆力强的人,面试完以后,几乎能把自己和面试官的对话都给记下来.LZ自己当初面试完以后,除了记住一些聊过的知识点以外,具体的内容 ...

  3. C#网络编程(基本概念和操作) - Part.1[转自JimmyZhang博客]

    引言 C#网络编程系列文章计划简单地讲述网络编程方面的基础知识,由于本人在这方面功力有限,所以只能提供一些初步的入门知识,希望能对刚开始学习的朋友提供一些帮助.如果想要更加深入的内容,可以参考相关书籍 ...

  4. 字符串最长对称 java_求字符串最长对称字符串的长度(转何海涛博客)

    #include "stdafx.h" #include "stdio.h" #include "string.h" int get_max ...

  5. VB编程:Val字符串转数字,CStr数字转字符串-6_彭世瑜_新浪博客

    效果显示: Private Sub Text1_Change() Text2.Text = CStr(Text1.Text)     '转字符串 Text3.Text = Val(Text1.Text ...

  6. RPR_ABAP_SOURCE_SCAN:扫描代码,查找字符串_SAP刘梦_新浪博客

    一个查找字符串的程序,或者根据字符串查找所在的程序 界面如下: 当然可以在程序名那写上程序名称,然后字符串搜索那写上需要搜索的字符串, 然后执行,会搜这个程序 所有这个字符串出现的位置. 不过更多是在 ...

  7. iOS中 本地通知/本地通知详解 韩俊强的博客

    布局如下:(重点讲本地通知) iOS开发者交流QQ群: 446310206 每日更新关注:http://weibo.com/hanjunqiang  新浪微博 Notification是智能手机应用编 ...

  8. python day2 python基础 列表、元组操作 字符串操作 字典操作 集合操作 文件操作 字符编码与转码...

    本节内容 列表.元组操作 字符串操作 字典操作 集合操作 文件操作 字符编码与转码 1. 列表.元组操作 列表是我们最以后最常用的数据类型之一,通过列表可以对数据实现最方便的存储.修改等操作 定义列表 ...

  9. paip.字符串操作uapi java php python总结..

    paip.字符串操作uapi java php python总结.. java and php 相互转换.. import strUtil>>>  requiry(strUtil.p ...

最新文章

  1. 请查收你的GitHub 2020 年度报告!
  2. 【洛谷5251】[LnOI2019] 第二代图灵机(线段树+ODT)
  3. echarts版本折线图
  4. Linux系统管理命令:date、free、ps、du、kill、uname
  5. SpringBoot和MyBatis集成案例(学习笔记)
  6. .NET截取指定长度汉字超出部分以...代替
  7. java在线支付---01_在线支付功能的演示与概述
  8. 滴滴定制网约车D1即将登陆长沙 市民12月中可叫到
  9. 配置 Hadoop 时遇到的一些问题
  10. windows多线程没那么难
  11. 什么是0day漏洞,1day漏洞和nday漏洞
  12. Julia: save 和load的用法 和与Matlab的效率比较
  13. Go语言圣经阅读-第八周
  14. android re浏览器下载,RE文件浏览器
  15. 压缩/解压的软件 WinRAR 的去广告
  16. 杰理之ANC降噪三种类型【篇】
  17. 全面改革个税关乎民生和正义
  18. 全球制造业“看上去很美”
  19. cpu满载寿命_CPU的使用寿命大概有多少年,多久迭代一次为佳?
  20. 【扫描PDF】如何将颜色淡的扫描PDF颜色变深,便于阅读??PDF中文字太淡怎么加深?汇总网上已有的方法,一波小结

热门文章

  1. 右键添加显示隐藏文件夹功能
  2. python处理心电图_【技术博客】Python玩转信号处理与机器学习入门
  3. directx 9.0c sdk api介绍
  4. xp计算机远程桌面设置密码,远程桌面连接设置,详细教您xp怎么设置远程桌面连接...
  5. 小程序组件的初始化方法attached
  6. 声网高纯:领域和方向要聚焦,用最专业的方法做最专业的事丨人物专访
  7. 蓝牙助手android,蓝牙助手手机版
  8. 展锐android r kernel 快速编译
  9. oracle add_months()函数
  10. 2015.09.07 活着就是一种召唤——《活着》余华