zoukankan      html  css  js  c++  java
  • C#基础—string等类的有趣方法_1

    https://www.cnblogs.com/kakakade/p/4562467.html

    https://www.cnblogs.com/babietongtianta/p/4958189.html

    转载自博客园卡卡的,巴别塔;

    1, C# 中 字符串常量可以以 @ 开头声名,这样的优点是转义序列“不”被处理,按“原样”输出,
    即我们不需要对转义字符加上 / (反斜扛),就可以轻松coding。如
    string filePath = @"c:/Docs/Source/a.txt"; // rather than "c://Docs//Source//a.txt"
     
    2,如要在一个用 @ 引起来的字符串中包括一个双引号,就需要使用两对双引号了。
    这时候你不能使用 / 来转义爽引号了,因为在这里 / 的转义用途已经被 @  “屏蔽”掉了。如
    @"""Ahoy!"" cried the captain."; // 输出为: "Ahoy!" cried the captain.

    1---》字符串的声明:

      1、string s=new string(char[] arr)     //根据一个字符数组声明字符串,即将字符字组转化为字符串。

      2、string s=new string(char r,int i)    //生成 i 个字符 r 的字符串。

    2---》字符串常用的静态方法:

      1、Compare 字符串的比较(按照字典顺序)  

        int result= string.Compare(string str1,string str2); 

        当str1 > str2时,返回1

        当str1 = str2时,返回0

        当str1 < str2时,返回-1

        string.Compare(string str1,string str2,bool ignoreCase)   //忽略大小写比较

      2、Concat连接方法参数很多,常用的Concat(string str1,string str2);

        string str=string.Concat("w","e"); //str="we";

      3、Format参数化处理,相当于Console.WriteLine();

        string str=String.Format("今天{0}很热","天气");//str="今天天气很热";

      4、IsNullOrEmpty判断字符是否为null或者为空,返回值为bool;

        string str1="hahha";    

        bool b1=string.IsNullOrEmpty(str);//b1=false;

        string str2="";

        bool b2=string.IsNullOrEmpty(str2);//b2=true;

        string str3=null;

        bool b3=string.IsNullOrEmpty(str3);//b3=true;

      5、Join字符串的合并

        string.Join(string str,string[] strArr);//将数组strArr中的内容拼接成一个新的字符串,并在对应数组的每两项间添加分隔符str

        string strs=string.Join(",",string[]{"w","e","r","t"});//strs="w,e,r,t";

    3---》字符串常用的实例方法:

      1、Contains 判断字符串中是否包含某个字符,返回bool值。

        string str="好累呀";

        bool  b=str.Contains("累");//b=true;

      2、EndsWith和StartsWith  判断是否是已某种字符串开始或者结束

        string str="好大的雨呀";

        bool  b1=str.StartsWith("大");//b1=false;

        bool  b2-str.EndsWith("呀");//b2=true;

      3、Equals 比较两个字符串是否相等

        string str1="asd";

        string str2="ert";

        bool  b = str1.Equals(str2);  //b=false;

        bool <strName>.Equals(string str, StringComparison.OrdinalIgnoreCase)   //表示不区分大小写

       4、IndexOf 和 LastIndexOf  判断字符串第一次出现(IndexOf)和最后一次出现(LastIndexOf  )的位置,如果没有出现过则返回值为-1

        string str ="今天的雨很大,天很冷";

        int i=str.IndexOf("很"); //i=4;

        int i=str.LastIndexOf("很");//j=8;

        int m=str.IndexOf("小");//m=-1;

       5、Replace 字符串(字符也是可以的)替换,返回新的字符串

        string str="好困呀";

        string s=str.Replace("困","精神");//s="好精神呀";

       6、Insert 插入

        在字符串的index位置上插入字符,原来的字符依次后移,变成一个新的字符串

        string str="夜深了";

        string s=str.Insert(1,"已经");//  s="夜已经深了"

       7、Remove删除字符串(字符)

        在字符串中移除从startIndex开始,长度为length的字符串,剩下的字符合为一个新的字符串(<strName> = <strName>.Remove(startIndex,length);)

        string str="夜已经深了";

        string s=str.Remove(1,2);//s="夜深了";

       8、Split 将字符串<strName>以sep数组中的字符分割,分割后得到的内容存到一个数组中(string[] <strName>.Split(params char[] sep);)

        string str="我,真的、好困;呀";

        string[] s=str.Split(new char(){',','、',';'});//s=string[]{"我","真的","好困","呀"};

       9、Substring 截取字符<str>以index开始截取,并截取lenth个字符(string <str>.Substring(index,lenth))

        string str="还在下雨";

        string s=str.Substring(2,2);//s="下雨";

       10、ToCharArray将字符串转化为字符数组(<string>.ToCharArray())

         string str="雨已经小了";

         char[] s=str.ToCharArray();//s=char[]{'雨',"已","经","小","了"};

       11、Trim() 出去两边的空格

          string str="  dd  ";

          string s=str.Trim();//s="dd";

       12、ToUpper(转换为大写)和ToLower(转换为小写)

         string s="RaSer";

         string s1=s.ToUpper();//s1="RASER";

         string s2=s.ToLower();//s2="raser";

    C#中string.format用法详解

              

    String.Format 方法的几种定义:

    String.Format (String, Object) 将指定的 String 中的格式项替换为指定的 Object 实例的值的文本等效项。
    String.Format (String, Object[]) 将指定 String 中的格式项替换为指定数组中相应 Object 实例的值的文本等效项。
    String.Format (IFormatProvider, String, Object[]) 将指定 String 中的格式项替换为指定数组中相应 Object 实例的值的文本等效项。指定的参数提供区域性特定的格式设置信息。
    String.Format (String, Object, Object) 将指定的 String 中的格式项替换为两个指定的 Object 实例的值的文本等效项。
    String.Format (String, Object, Object, Object) 将指定的 String 中的格式项替换为三个指定的 Object 实例的值的文本等效项。

    常用的格式化数值结果表

    字符

    说明

    示例

    输出

    C 货币 string.Format("{0:C3}", 2) $2.000
    D 十进制 string.Format("{0:D3}", 2) 002
    E 科学计数法 1.20E+001 1.20E+001
    G 常规 string.Format("{0:G}", 2) 2
    N 用分号隔开的数字 string.Format("{0:N}", 250000) 250,000.00
    X 十六进制 string.Format("{0:X000}", 12) C
        string.Format("{0:000.000}", 12.2) 012.200

    常用的几种实例

    1、字符串的数字格式

     
    1
    2
    3
    4
    5
    6
    7
    string str1 =string.Format("{0:N1}",56789);               //result: 56,789.0
    string str2 =string.Format("{0:N2}",56789);               //result: 56,789.00
    string str3 =string.Format("{0:N3}",56789);               //result: 56,789.000
    string str8 =string.Format("{0:F1}",56789);               //result: 56789.0
    string str9 =string.Format("{0:F2}",56789);               //result: 56789.00
    string str11 =(56789 / 100.0).ToString("#.##");           //result: 567.89
    string str12 =(56789 / 100).ToString("#.##");             //result: 567

    2、格式化货币(跟系统的环境有关,中文系统默认格式化人民币,英文系统格式化美元)

     
    1
    string.Format("{0:C}",0.2)

      

     结果为:¥0.20 (英文操作系统结果:$0.20)

    默认格式化小数点后面保留两位小数,如果需要保留一位或者更多,可以指定位数

     
    1
    string.Format("{0:C1}",23.15)

      

    结果为:¥23.2 (截取会自动四舍五入)
    格式化多个Object实例

     
    1
    string.Format("市场价:{0:C},优惠价{1:C}",23.15,19.82)

    3、格式化十进制的数字(格式化成固定的位数,位数不能少于未格式化前,只支持整形)

     
    1
    2
    string.Format("{0:D3}",23) //结果为:023
    string.Format("{0:D2}",1223) //结果为:1223,(精度说明符指示结果字符串中所需的最少数字个数。)

      

     4、用分号隔开的数字,并指定小数点后的位数

     
    1
    2
    string.Format("{0:N}", 14200) //结果为:14,200.00 (默认为小数点后面两位)
    string.Format("{0:N3}", 14200.2458) //结果为:14,200.246 (自动四舍五入)

    5、格式化百分比

     
    1
    2
    string.Format("{0:P}", 0.24583) //结果为:24.58% (默认保留百分的两位小数)
    string.Format("{0:P1}", 0.24583) //结果为:24.6% (自动四舍五入)

    6、零占位符和数字占位符

     
    1
    2
    3
    4
    string.Format("{0:0000.00}", 12394.039) //结果为:12394.04
    string.Format("{0:0000.00}", 194.039) //结果为:0194.04
    string.Format("{0:###.##}", 12394.039) //结果为:12394.04
    string.Format("{0:####.#}", 194.039) //结果为:194

      

    下面的这段说明比较难理解,多测试一下实际的应用就可以明白了。
    零占位符: 如果格式化的值在格式字符串中出现“0”的位置有一个数字,则此数字被复制到结果字符串中。小数点前最左边的“0”的位置和小数点后最右边的“0”的位置确定总在结果字符串中出现的数字范围。 “00”说明符使得值被舍入到小数点前最近的数字,其中零位总被舍去。
    数字占位符: 如果格式化的值在格式字符串中出现“#”的位置有一个数字,则此数字被复制到结果字符串中。否则,结果字符串中的此位置不存储任何值。
    请注意,如果“0”不是有效数字,此说明符永不显示“0”字符,即使“0”是字符串中唯一的数字。如果“0”是所显示的数字中的有效数字,则显示“0”字符。 “##”格式字符串使得值被舍入到小数点前最近的数字,其中零总被舍去。

    7、日期格式化

     
    1
    2
    3
    4
    5
    6
    7
    8
    9
    string.Format("{0:d}",System.DateTime.Now) //结果为:2009-3-20 (月份位置不是03)
    string.Format("{0:D}",System.DateTime.Now) //结果为:2009年3月20日
    string.Format("{0:f}",System.DateTime.Now) //结果为:2009年3月20日 15:37
     string.Format("{0:F}",System.DateTime.Now) //结果为:2009年3月20日 15:37:52
     string.Format("{0:g}",System.DateTime.Now) //结果为:2009-3-20 15:38
     string.Format("{0:G}",System.DateTime.Now) //结果为:2009-3-20 15:39:27
     string.Format("{0:m}",System.DateTime.Now) //结果为:3月20日
    string.Format("{0:t}",System.DateTime.Now) //结果为:15:41
     string.Format("{0:T}",System.DateTime.Now) //结果为:15:41:50
    余生很长,愿我们都活成自己喜欢的样子
  • 相关阅读:
    POJ 3114 Tarjan+Dijkstra
    278. First Bad Version
    209. Minimum Size Subarray Sum
    154. Find Minimum in Rotated Sorted Array II
    153. Find Minimum in Rotated Sorted Array
    710. Random Pick with Blacklist
    767. Reorganize String
    524. Longest Word in Dictionary through Deleting
    349. Intersection of Two Arrays
    350. Intersection of Two Arrays II
  • 原文地址:https://www.cnblogs.com/bananana/p/8695868.html
Copyright © 2011-2022 走看看