• C#之字符串篇


    大杂烩

    一、类型转换
        字符串转整形:

         int a = int.Parse(""); //不能转换null

         int b = Convert.ToInt32("");  null转为0     四舍五入(.5的话只对奇数进行四舍五入)

          // char.IsLetter  判断是否是数字

        比较是否相等:

                //            if(str == "abc")
                // if(String.Equals(str,"abc"))
                // if(String.Compare(str,"abc")==0)

        获取对象地址:

                GCHandle hander = GCHandle.Alloc(str1);
                var pin = GCHandle.ToIntPtr(hander);

                Console.WriteLine(pin);

    二、自定义可以代替单个参数情况下不用重载的方法:

            public static string testFunction(object obj) {
                if (obj.GetType() == typeof(String)) {//判断类型
                    return (String)obj;
                }else if(obj.GetType() == typeof(string[])){
                    string tempString = "";
                    foreach (object obje in (string[])obj) {
                        tempString += obje;            
                    }
                    return tempString;
                }
                return null;
            }

    三、字符串格式化

        string str = String.Format("{0:C} "+ "{0:D} " + "{0:E} " + "{0:F} " + "{0:G} " + "{0:N} " + "{0:P} " + "{0:X} ",21);

        输出:¥21.00    21     2.100000E+001      21.00     21     21.00    2,100.00%    15  

     三、字符串截取

        str.Substring(下标,长度)

     四、字符串分割与合并与插入

                string str = "12-345=67-89";
               String[] strArray = str.Split('-','=');//参数为字符或字符数组

                foreach (var obj in strArray) {
                    Console.WriteLine(obj);
                }
                Console.WriteLine(String.Concat(strArray));//直接合并

                Console.WriteLine(String.Join("++",strArray));//加分隔符合并

                Console.WriteLine(String.Join("++", strArray).Insert(2,"aaa"));//插入

    五、字符串填充

               String str = "123";
               Console.WriteLine(str.PadLeft(10,'0'));//输出0000000123

    六、字符串移除

               str.Remove(下标,长度)//移除下标以后的数据(包括下标位置)

    七、字符串修剪      public String Trim(params char[] trimChars);可变参数个数  (‘1’,‘2’)<=>  char[] ch = { '1', '2' };(ch)<=>("12".ToCharArray())

               str.Trim()//删除头部和尾部的空格,用于输入框字符串的处理 

    八、字符串复制

                String str = "0123456789";
                //Copy 是静态方法(类方法)
                Console.WriteLine(String.Copy(str));
                //Copy非静态方法(实例方法)
                char[] ch = new char[20];
                str.CopyTo(4, ch, 0, 3);//返回void类型 (copy起始下标,目标对象,目标对象起始下标,copy长度)
                Console.WriteLine(ch);

    九、字符串替换

                str.Replace('9', '0')//(old,new)

    十、字符串查找

                str.IndexOf("345")   返回-1 表示不不包含   返回int类型

                                                             checked  检查异常

  • 相关阅读:
    【洛谷4005】小 Y 和地铁(搜索)
    【洛谷4348】[CERC2015] Cow Confinement(扫描线+线段树优化DP)
    【洛谷7016】[CERC2013] Captain Obvious and the Rabbit-Man(手动高斯消元)
    【洛谷3438】[POI2006] ZAB-Frogs(斜率优化)
    【洛谷3426】[POI2005] SZA-Template(KMP)
    【洛谷5157】[USACO18DEC] The Cow Gathering P(拓扑)
    【洛谷5155】[USACO18DEC] Balance Beam P(期望+凸壳)
    【洛谷5204】[USACO19JAN] Train Tracking 2 P(DP)
    【CF757F】Team Rocket Rises Again(最短路图+拓扑)
    【LOJ3038】「JOISC 2019 Day3」穿越时空 Bitaro(线段树)
  • 原文地址:https://www.cnblogs.com/liuguan/p/5895556.html
Copyright © 2020-2023  润新知