2022.10.22《VR引擎程序设计基础》—第10章 String类 代码整理

93 阅读3分钟

头部代码:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace 第10章_String类
{
internal class _10
{
    public static void Main(string[] args)
    {

1、创建String类对象

        //字符串。字符串的连接
        /* string fname, lname;
         fname = "张";
         lname = "三";
         string fullname = fname + lname;
         Console.WriteLine(fullname);//输出结果:  张三
                                     //通过使用string构造函数
         char[] letters = { 'h', 'e', 'l', 'l', 'o' };
         string greetings = new string(letters);//实例化一个对象,并传入参数
         Console.WriteLine(greetings);//输出结果:hello
                                      //方法返回字符串
         string[] sarray = { "h", "e", "l", "l", "o" };
         string message = String.Join("         ", sarray);//此处空格也也可以改为其他想要加入的字符
         Console.WriteLine("使用Join方法:{0}", message);//输出结果:使用Join方法:h   e    l    l     o
                                                    //用于转化值的格式化方法
         DateTime waiting = new DateTime(2012, 10, 10, 17, 58, 1);
         string chat = string.Format("当前时间:{0:t} on {0:D}", waiting);//时间的格式化
         Console.WriteLine("使用Fromat方法:{0}", chat);//输出结果:当前时间:17:58 on 2012年10月10日*/

2、 Compare和Equals方法实例代码

        /*string str1 = "Hello";
        string str2 = "hello";
        //调用Equals方法比较str1和str2,相同的话返回true,不同的话返回false
        //写法一、
        Console.WriteLine("Equals方法:" + str1.Equals(str2));
        //写法二、
        Console.WriteLine("Equals方法:" + string.Equals(str1, str2));
        //调用Compare方法比较str1和str2,利用第三参数来区分决定是否使用第三参数,对于false不写也可
        Console.WriteLine("Compare方法(不区分大小):" + string.Compare(str1, str2));
        //这是错误写法:Console.WriteLine("Compare方法(不区分大小):"+string.Compare(str1,str2,1));
        Console.WriteLine("Compare方法(不区分大小):" + string.Compare(str1, str2, false));  //1
        Console.WriteLine("Compare方法(区分大小):" + string.Compare(str1, str2, true));     //0
        Console.WriteLine("Compare方法(设置索引,比较长度,不区分大小写):" + string.Compare(str1, 0, str2, 0, 7));//1
        Console.WriteLine("Compare方法(设置索引,比较长度,区分大小写):" + string.Compare(str1, 3, str2, 1, 7, true));//1*/

3、StartWith、EndWith以及IndexOf

        /*string str1 = "HelloWorld";
        //调用StartWith和EndWith方法
        //返回一个Boolean值,确定此字符串的开始/结尾是否与指定的字符串匹配;
        Console.WriteLine("StartsWith方法:" + str1.StartsWith("He")); //True   
        Console.WriteLine("EndtsWith方法:" + str1.EndsWith("He"));  //False
        //IndexOf方法
        //返回指定字符或者字符串在指定范围内的第一个匹配项的索引;
        Console.WriteLine("IndexOf方法(直接搜索):" + str1.IndexOf("H")); //0   
        Console.WriteLine("IndexOf方法(限定开始查找的位置):" + str1.IndexOf("H", 0));//0
        Console.WriteLine("IndexOf方法(限定开始查找的位置,以及查找结束的位置):" + str1.IndexOf("H", 0, 5)); //0   
        //调用LastIndexOf方法
        //从后往前找返回指定字符或字符串在此实例中指定范围内的第一个匹配项的索引
        Console.WriteLine("LastIndexOf方法(直接搜索):" + str1.LastIndexOf("H")); //0   
        Console.WriteLine("LastIndexOf方法(限定开始查找的位置):" + str1.LastIndexOf("H", 0));//0
        Console.WriteLine("LastIndexOf方法(限定开始查找的位置,以及查找结束的位置):" + str1.LastIndexOf("H", str1.Length, 5)); //-1
        //调用IndexOfAny方法
        //从字符串str1第一个字符开始(索引为0),将其与字符数组testArr中的元素进行匹配,如果匹配得到,则返回当前索引
        char[] TestArr = { 'H', 'W' };
        Console.WriteLine("IndexOfAny方法(直接搜索):" + str1.IndexOfAny(TestArr)); //0   
        Console.WriteLine("IndexOfAny方法(限定开始查找的位置):" + str1.IndexOfAny(TestArr, 0));//0
        Console.WriteLine("IndexOfAny方法(限定开始查找的位置,以及查找结束的位置):" + str1.IndexOfAny(TestArr, 5, 5)); //5
        //调用LastIndexOfAny方法
        //从后往前找,将字符串str1与字符数组testArr进行匹配,如果匹配到,则返回当前索引,
        Console.WriteLine("LastIndexOfAny方法(直接搜索):" + str1.LastIndexOfAny(TestArr)); //5   
        Console.WriteLine("LastIndexOfAny方法(限定开始查找的位置):" + str1.LastIndexOfAny(TestArr, 0));//0
        Console.WriteLine("LastIndexOfAny方法(限定开始查找的位置,以及查找结束的位置):" + str1.LastIndexOfAny(TestArr, str1.Length - 1, 5)); //-5*/

4、 Concat、Join方法

        //Concat Join +  等字符连接的使用
        /*string str1 = "Hello";
        string str2 = "World";
        string str3 = "World";
        string newStr;
        newStr = string.Concat(str1,str2,str3);
        Console.WriteLine("Concat 方法:"+newStr);
        newStr = string.Join("^^",str1,str2);
        Console.WriteLine("Join方法:"+newStr);
        newStr = str1 + str2;
        Console.WriteLine("连接运算符:"+newStr);*/

5、 Split方法实例代码

        /*   string str1 = "Hello^World";
           char[] separator = {'^'};
           string[] newStr;
           newStr = str1.Split(separator);//将字符串以^为标志进行分割,并利用for循环进行输出
           for (int i = 0;i < newStr.Length;i++) {
               Console.WriteLine("Split方法:" + newStr[i]);
           }*/

6、 Insert方法实例代码

        //作用:在指定位置插入字符
        /* string str1 = "HelloWorld";
         string newStr = str1.Insert(3,"ABC");//索引开始为0,所以3应该为第二个l的位置
         Console.WriteLine("Insert方法:" +  newStr);
         //************输出结果:Insert方法:HelABCloWorld*/

7、 Remove方法和Trim实例代码

        //Remove作用:从一个字符串的指定位置开始,删除指定数量的字符。
        //Trim作用:若想把一个字符串的首尾处的一些特殊字符剪切掉,如去掉一个字符串首尾的空格等,可以使用String类的Trim方法:
        /*
         string str1 = " Hello World ";
         Console.WriteLine("Remove方法:"+str1.Remove(0,2));
         string str2 = "HelloWorld";
         Console.WriteLine("Trim方法(去掉前后空格):" + str2.Trim());
         Console.WriteLine("TrimStart方法(去掉字符串前面空格):" + str2.TrimStart());
         Console.WriteLine("TrimEnd方法(去掉字符串后面空格):" + str2.TrimEnd());*/
        /*
        *****输出结果*********
       Remove方法:lloWorld
       Trim方法(去掉前后空格):HelloWorld
       TrimStart方法(去掉字符串前面空格):HelloWorld
       TrimEnd方法(去掉字符串后面空格):HelloWorld
        */

8、Copy和CopyTo方法实例代码

        //copy作用:copy(要复制的源字符串)返回目标字符串;
        //CopyTo作用:CopyTo(复制字符的起始位置,目标字符数组,开始存放位置,复制的字符个数)
        /*   string str1 = "HelloWorld";
           Console.WriteLine("Copy方法" + string.Copy(str1));
           char[] newChar = new char[3];
           str1.CopyTo(0, newChar, 0, 3);
           for (int i = 0; i < newChar.Length; i++)
           {
               Console.WriteLine("CopyTo方法:" + newChar[i]);

           }*/
        //*********输出结果
        /* 
          Copy方法HelloWorld
          CopyTo方法:H
          CopyTo方法:e
          CopyTo方法:l
        */

9、 Replace方法实例代码

        //Replace作用:替换值 replace(old,new)
        /*string str1 = "HelloWorld";
        Console.WriteLine(str1);
        Console.WriteLine("Replace方法(o->z):" + str1.Replace('o', 'z'));
        Console.WriteLine("Replace方法(World->Hello):" + str1.Replace("World", "Hello"));*/

        //***********最终输出结果:
        /* Replace方法(o->z):HellzWzrld
         Replace方法(World->Hello:HelloHello
         */

10、ToUpper和ToLower方法实例代码

        /* string str1 = "HelloWorld";
         Console.WriteLine(str1);
         Console.WriteLine("ToLower方法(转小写):{0}", str1.ToLower());
         Console.WriteLine("ToLower方法(转大写):{0}", str1.ToUpper());*/
        //***********最终输出结果:
        /*HelloWorld
        ToLower方法(转小写):helloworld
        ToLower方法(转大写):HELLOWORLD
    }
  }
}

注:如果经常需要经常对字符串进行反复的修改操作,则建议使用stringBuilder类,因为string类是非常耗费资源的。 StringBuilder builder = new StringBuilder();