C#字符串操作,转自韩迎龙博客

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

时间: 2024-11-12 06:32:17

C#字符串操作,转自韩迎龙博客的相关文章

中国寒龙博客www.hackerschina.org:代码审计:PHP中is_numeric函数十六进制绕过BUG 发生的安全问题有哪些?

0×00 简介国内一部分CMS程序里面有用到过is_numberic函数,我们先看看这个函数的结构bool is_numeric ( mixed $var )如果 var 是数字和数字字符串则返回 TRUE,否则返回 FALSE. 0×01 函数是否安全接下来我们来看个例子,说明这个函数是否安全. $s = is_numeric($_GET['s'])?$_GET['s']:0; $sql="insert into test(type)values($s);";//是 values($

SiteServer CMS 系统漏洞 -寒龙博客

siteserver 漏洞先看简介:SiteServer CMS 网站内容管理系统(著作权登记号2008SR15710)是定位于中高端市场的CMS内容管理系统,能够以最低的成本.最少的人力投入在最短的时间内架设一个功能齐全.性能优异.规模庞大的网站平台. SiteServer CMS 是基于微软.NET 平台开发的网站内容管理系统,它集成了内容发布管理.多站点管理.定时内容采集.定时生成.多服务器发布.搜索引擎优化.流量统计等多项强大功能,独创的 STL 模板语言,通过Dreamweaver 可

浅谈webshell检测方法 寒龙博客转载

一  什么是webshell"web"的含义是显然需要服务器开放web服务,"shell"的含义是取得对服务器某种程度上操作权限.webshell常常被称为匿名用户(入侵者)通过网站端口对网站服务器的某种程度上操作的权限.简单理解:webshell就是一个web的页面,但是它的功能非常强大可以获得一些管理员不希望你获得的权限,比如执行系统命令.删除web页面.修改主页等.webshell中由于需要完成一些特殊的功能就不可避免的用到一些特殊的函数,我们也就可以对着特征

菜刀绕过安全狗 。 -中国寒龙博客

琴日骚总带领落叶哥哥一起日一站,忽遇一狗,后面跟小骚猪一起砍死了小狗,没技术含量,本来想让骚猪发到乌云上混个ID算,谁知那只猪仔喜欢潜水不要ID,不喜欢冒泡,落叶哥哥就直接发ZONE分享下算了 传左shell上去但系被狗拦左,shell过狗仲系好容易噶,但系过左狗之后狗狗仲系拦菜刀提交的数据包 然后骚总想到了个方法,就系在一句话解密传递的数据 菜刀连接PHP一句话时会自己重新定义一个z0变量来执行PHP代码,我们只要用OD把EVAL POST去掉就得咯,一句话马的密码随便填,不就能过狗狗了吗 一

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

布局如下:(重点讲本地通知) 每日更新关注:http://weibo.com/hanjunqiang  新浪微博 Notification是智能手机应用编程中非常常用的一种传递信息的机制,而且可以非常好的节省资源,不用消耗资源来不停地检查信息状态(Pooling),在iOS下应用分为两种不同的Notification种类,本地和远程.本地的Notification由iOS下NotificationManager统一管理,只需要将封装好的本地Notification对象加入到系统Notificat

iOS中 按钮和标题完美各种排列/完美教程 韩俊强的博客

每日更新关注:http://weibo.com/hanjunqiang  新浪微博! 前言:最近常常用到按钮和相应标题的组合,当按钮设置图片加标题时,触发范围较小,不易触发,最重要的是还要调试偏移量,相信研究过的开发者都很头疼这一点,那我我就想解决,于是在网上研究了一番,个人总结封装了一个,觉得很棒,推荐给大家! 下面看教程: 整体是对UIButton的自定义封装: //UIButton+UIButtonSetEdgeInsets.h #import <UIKit/UIKit.h> @inte

6. Go语言—字符串操作

一.字符串支持的转义字符 \r 回车符(返回行首) \n 换行符(直接跳到下一行的同列位置) \t 制表符 \' 单引号 \" 双引号 \\ 反斜杠 \uXXXX Unicode字符码值转义,例如 "\u5eb7" 就是 "康" ? Go语言中字符串的顶层结构是由一个指针和长度构成的.使用 unsafe.Sizeof("") 会得到16长度,其中8个字节是指针,指向字符串的内存地址,8个是存储字符串的长度. 二.字符串反转 func r

条件、循环、函数定义、字符串操作练习

注意标准库的两种导入与使用方式,建议大家采用<库名>.<函数名>的方式. 对前面的代码进行优化,用for,while,if,def实现: 用循环画五角星 1 import turtle 2 3 turtle.fillcolor("red") 4 turtle.begin_fill() 5 for i in range(5): 6 turtle.forward(100) 7 turtle.right(144) 8 turtle.end_fill() 用循环画同心圆

PHP字符串操作大集合

字符串的处理非常重要.文本字符串中的空格或者其他没有意义的符号.例如,在一个电子商务应用中,当用户填写订单的内容时(如联系地址),可能输入一些空格.句号等PHP4及以上版本提供了4个去除字符串str首尾处空格或其他特殊符号.     string ltrim(string str [, string charlist]):去除字符串str尾的空格或其他特殊符号.     string chop(string str [, string charlist]):功能同rtrim(). 以上函数的第1