• C#中的String类2


                              深入C# String类

    C#中的String类

    他是专门处理字符串的(String),他在System的命名空间下,在C#中我们使用的是string

    小写的string只是大写的String的一个别名(外号)使用大写和小写都是一样的

    Using  == import

    常用的字符串处理法

    Java中常用的字符串处理方法?

    1)  IndexOf:字符串的检索

    a)         IndexOf(String s):重头开始检索

    b)         IndexOf(String s,startString s):从startString开始检索

    2)  获取长度:.length()

    3)  判断.equals(参数)

    4)  得到字符串的子字符

    subString(参数)

    subString(参数1,参数2)

    https://www.cnblogs.com/ABook/p/5527341.html

    C#提供的字符串比较的方法

    1)  IndexOf:查找某个字符在字符串当中的位置

    2)  subString:从字符串中截取子字符

    3)  ToLower():转换成小写

    4)  ToUpper():大写

    5)  Time():去空格

    6)  Equals():比较字符串值

    If(name == “”)                    地址

    If(name.Equals(String.Empty))值

    “”和Empty的区别?

    If(name == “a”)                                     分配一个长度为空的存储空间String

    If(name == null)空                       给你一个空间,但大小不规定

    If(name.Equals(String.Empty)) 不会分配存储空间

             判断空字符串的三种写法?这三个的性能比较?

    Name.Length ==0                      2

    Name == String.Empty              1

    Name == “”                                  3

    7)  join():链接字符串

    8)  split():分割

    获取邮箱用户名

             需求:获取邮箱的用户名

                         兼用各种格式yes(YES)

                         循环执行

    public void GetUserName()

    {

        string code;//用户选择

        do{

            this.PickNameFoemEmail();

            Console.WriteLine("是否继续?yes/no");

            code = Console.ReadLine();

            code = code.Trim().ToLower();

        }while(code.Equals("yes"));

    }

    public void PickNameFoemEmail()

    {

        string emsil;// 获取邮箱

        string name;//获取用户名

     

        Console.WriteLine("请输入邮箱:");

        emsil = Console.ReadLine();

     

        Console.WriteLine("你的邮箱是{0}:",emsil);

     

     

        // 提取

        int posion = emsil.IndexOf("@");

        if (posion > 0)

        {

            name = emsil.Substring(0, posion);

     

            Console.WriteLine("你的邮箱地址是:{0}", name);

        }

        else

        {

            Console.WriteLine("你的邮箱格式错误");

        }

    }

    Class1 c = new Class1();

    c.GetUserName();

     

    Console.ReadKey();

                           

    连接分割字符串

    Join     split

    // 输入的字符串

    string inputString;

    // 分割后的字符串数组

    string[] splitString;

    // 连接后的

    string joinString;

     

    Console.WriteLine("请输入字符串,用空分开:");

     

    inputString = Console.ReadLine();

    splitString = inputString.Split(' ');

    Console.WriteLine(@" 分割后的:");

    foreach (var item in splitString)

    {

        Console.WriteLine(item);

    }

    joinString = string.Join("---­",splitString);

     

    Console.WriteLine(" 连接后的字符串:{0}",joinString);

    @” 转义符”:忽略掉

    Format格式化(不是清除的意思)

    String name = “Tom”;

    Console.WritrLine(“我的名字:{0},我的年龄{1}”,name,22);

    {x}占位符的方式去输出

    string name;

                string birthday;

                int height;

                string bloodType;

                string planet;

                string loveFood;

                string record;

     

                Console.WriteLine("欢迎来到“C#”的世界!");

                Console.WriteLine("请输入你的个人信息,我将为你建立个人档案:");

                Console.Write("姓名:");

                name = Console.ReadLine();

                Console.Write("出生年月:(*年*月*日):");

                birthday = Console.ReadLine();

                Console.Write("身高(cm):");

                height = int.Parse(Console.ReadLine());

                Console.Write("星座:");

                planet = Console.ReadLine();

                Console.Write("血型:");

                bloodType = Console.ReadLine();

                Console.Write("喜欢的食物:");

                loveFood = Console.ReadLine();

     

                record = string.Format("姓名:{0} 出生年月:{1} 身高:{2} 星座:{3} 血型:{4} 喜欢的食物:{5}",name,birthday,height,bloodType,planet,loveFood);

     

                Console.WriteLine(" 这是你的个人档案:");

                Console.WriteLine(record);

     

                Console.ReadKey();

    Grammar:String myString = string.Format(“格式化字符串{x}”,参数列表)

    2 * 3 = 6

    String myString = string.Format(“{0}乘以{1}等于{2}”,2,3 ,2 * 3);

    如输出货币

    语法:

    格式字符串包括:固定文本和格式项

    格式项

    Console.WriteLine("{0}",50);

                Console.WriteLine(String.Format("{0,-8:F2}",50));

                Console.WriteLine(String.Format("{0,8:C2}", 50));

    Format()方法的格式化字符串中各种格式化定义符和示例

    1)  C:货币格式

    2)  D十进制格式

    3)  F小数点后固定位数

    4)  N用逗号隔开的数字

    5)  P百分比计数法

    6)  X十六进制格式

    Console.WriteLine("{0}",String.Format("{0:C3}",3000));

    Console.WriteLine("{0}",String.Format("{0:D3}",2000));

    Console.WriteLine("{0}", String.Format("{0:F3}", 2000));

    Console.WriteLine("{0}", String.Format("{0:N}", 230000));

    Console.WriteLine("{0}", String.Format("{0:P3}", 0.921867357621));

    Console.WriteLine("{0}", String.Format("{0:X000}", 12));

    类型转换

    为什么需要类型转换?

             不转就报错

    简单的类型转换

    Int 类型可以隐式的转换为float或double类型,float可以隐式的转换为double

    double a = (double)float.Parse(Console.ReadLine());

    double b = 12.0f;

    显示转换

    double num = 30.7;

    int num1 = 10;

    int sum;

    sum = (int)num + num1;

    Console.WriteLine(sum);

    整数类型与字符串之间的转换

    1,2,3,4,5,6,n

    说的话,字符

    隐式类型和显示类型一般都是值类型之间的转换,并不适用于值类型和字符串类型之间的转换

    字符串转换为值类型?

    int.Parse(Console.ReadLine());

    要把字符串转换为值类型的时候,可以调用不同的数值类型的Parse()方法

    Parse():解析

    字符串转换为整形?

    int.Parse(string);

     

    float.Parse(string);

     

    double.Parse(string);

    注意:要转换的字符串必须是数字类型。

    你能把20转成整形,你能把name转成

    值类型转换为字符串类型?

    同java一样ToString();

    int age = 20;

    string age1 = age.ToString();

    Console.WriteLine(age1);

    使用Convert类进行转换?

    Convert.ToInt32();转换为int类型

    Convert.ToSingle();单精度浮点

    Convert.ToDouble();双精度

    Convert.ToString();字符串

    double myDouble = 20.66;

    int myInt;

    float myFloat;

    string myString;

     

    Console.WriteLine("转换前的double值为:{0}",myDouble);

     

    myInt = Convert.ToInt32(myDouble);

    myFloat = Convert.ToSingle(myDouble);

    myString = Convert.ToString(myDouble);

     

    Console.WriteLine("转换后:");

    Console.WriteLine("int float string");

    Console.WriteLine("{0} {1} {2}",myInt,myFloat,myString)

    做个比较:

    隐式类型转换:常用于数值之间的转换,取值范围小的数值类型转换为取值范围大的类型

    显示:将大的转换为小的

    Convert类:任何基本类型见得转换

    注:只用Parse和Convert进行转换不是,如果转换没有意义,则可能会出错

    double num = 10.11;

    int sum = int.Parse(num);

    Parse()方法不接受string以外的任何参数

    MyBank项目总结

    User

    账户类

    成员变量

             用户名

             密码

             身份证

             账号

             账号余额

    取款方法

    存款方法

    Bank

    成员变量(User   User数组   提示信息)

    初始化用户信息

    显示所有账户的所有信息

    显示菜单

    开户

    取款

    存款

    转账

    显示余额

    修改密码

    判断账户是否存在

    测试类

    调用方法

    判断空字符串的三种写法?这三个的性能比较?

    Name.Length ==0                     

    Name == String.Empty             

    Name == “”                                 

    建立个文件(aspx页面)

    Public void 方法名(Page-Load)(…..){

             String a = “”;

             For(int I = 0;i<1000000i++){

                       If(a.Length == 0){}

    }

    }

    方法                                         结果

    If(a==””)                            98

    If(a==String.Empty)    105

    If(a.Length == 0)          168

  • 相关阅读:
    阿里巴巴的字体图标库不错
    SQL语句一次INSERT多条记录的方法
    Oracle中改变表的Owner和tablespace
    QQ在线状态的使用
    gtest
    Git
    gRPC安装的小问题
    蓝桥杯试题 基础练习 查找整数
    Product Backlog
    本周工作量统计
  • 原文地址:https://www.cnblogs.com/QiliPING9/p/8259527.html
Copyright © 2020-2023  润新知