zoukankan      html  css  js  c++  java
  • C#中常用的字符串函数

    1. 函数可变参数
    params:关键字
    使用方法:
    1. static void str(params int[] numbers)
    2. static void SayHello(string name, params string[] nickNames)
    如果是使用第二种方法,那么使用params修饰的参数必须放在最后一个

    2. 函数重载
    对应位置上的参数类型不同或者参数个数不同才能构成重载,与返回值无关

    3. 字符串
    C#中字符串的长度就是我们看到的长度,和C语言不同,不需要考虑‘’

    C#中字符串有不可变性,字符串一旦声明就不可以再改变。所以只能通过索引来读取指定位置的char,不能对指定位置的char进行修改

    如果一定要修改,只能复制一份,用s.ToCharArray()方法等到字符串的char数组,对数组修改后调用string s1=new string(char[])这个构造函数来穿件char数组的字符串
    string s1 = "hello";
    char[] chars = s1.ToCharArray();
    chars[0] = 'a';
    string s2 = new string(chars);
    Console.WriteLine(s1);//输出结果为“hello”
    Console.WriteLine(s2);//输出结果为“aello”
    此处涉及到变量名和变量执行的值的区别。字符串的不可变性指的是内存中的字符串不可变,而不是变量不变

    4. 字符串常用函数
    注意:字符串是不可变的,所以这些函数都不会直接改变字符串的内容,而是把修改后的字符串的值通过函数返回值的形式返回
    (1)ToLower():得到字符串的小写形式
    (2)ToUpper():得到字符串的大写形式
    (3)Trim():去掉字符串两端的空白(不会去掉字符串中的空白)
    (4)两个字符串比较的时候“==”是区分大小写的比较
    s1.Equals(s2,StringComparison.OrdinalIgnoreCase);这种是不区分大小写的比较
    inti=s1.CompareTo(s2);这个是用于两个字符串之间的大小比较,返回值是一个整数

    5. 字符串的分隔
    (1)string[]Split(paramschar[]separator);将字符串按章指定的分隔符分割为字符串数组
    string s1 = "aaa,df.dfdf|dfji ";
    string[] strs = s1.Split(',','.','|');
    foreach (string item in strs)
    {
    Console.WriteLine(item);
    }
    输出结果:
    aaa
    df
    dfdf
    dfji

    (2)string Split(char[] separator,StringSplitOptions options)将字符串按照指定的char分隔符分割为字符串数组
    (options取RemoveEmptyEntires的时候移除结果中的空白字符串)
    string s = "aa,bb,cc,,dd,1,2,3";
    string []strs=s.Split(new char[]{','},StringSplitOptions.RemoveEmptyEntries);
    当然,此处的char[]{','}中的分隔符可以不止一个。
    如果是以字符串分割的,那么就用new string[]{“字符串”}
    string s = "我是小明我是小天我是小刚";
    string[]strs=s.Split(newstring[]{"我是"},StringSplitOptions.RemoveEmptyEntries);

    (3)stringReplace(stringoldValue,stringnewValue)将字符串中的出现的oldValue的 地方替换为newValue。比如姓名的替换
    string s = "姚明是超级巨星,姚明身高216CM";
    s = s.Replace("姚明", "孙悦");

    (4)string Substring(int startIndex);取从位置startIndex开始一直到最后
    string Substring(int startIndex,int length);取从位置startIndex开始,长度为length的子字符串,如果子字符串的长度不足length,则会报错
    string s = "http://www.baidu.com";
    string s1 = s.Substring(7);
    string s2 = s.Substring(7, 3);
    Console.WriteLine(s1);//结果为www.baidu.com
    Console.WriteLine(s2);//结果为www

    (5)bool Contains(string value)判断字符串中是否含有子串value。
    bool StartsWith(string value)判断字符串是否以子串value开头
    bool EndWith(string value)判断字符串是否以子串value结束
    int IndexOf(string value) 取子串value第一次出现的位置。
    (返回子字符串的第一个字符第一次出现的位置。 不存在,则返回-1)
    注意:上面的bool和int都是函数的返回值类型,使用方法如下:
    string s="1234567889";
    bool result=s.Contains("12");


    练习1:接收用户输入的字符串,将其中的字符以与输入的相反的顺序输出。“123”→“321”
    string s=Console.ReadLine();
    for (int i = s.Length - 1; i >= 0; i--)
    {
    Console.Write(s[i]);
    }
    练习2:接收用户输入的一句英文,将其中的单词以反序输出。"hello c sharp"→"sharp c hello"
    string s=Console.ReadLine();
    string[] words = s.Split(' ');
    for (int i = words.Length - 1; i >= 0; i--)
    {
    Console.Write(words[i]+" ");
    }
    练习3:从Email中提取出用户名和域名:abc@163.com(indexOf找到@的位置,Substring)
    第一种方法:
    string email=Console.ReadLine();
    int atIndex = email.IndexOf('@');
    string userName = email.Substring(0, atIndex);
    string domainName = email.Substring(atIndex + 1);
    Console.WriteLine(userName);
    Console.WriteLine(domainName);
    第二种方法:
    string email=Console.ReadLine();
    string[] str = email.Split('@');
    string userName = str[0];
    string domainName = str[1];
    Console.WriteLine(userName);
    Console.WriteLine(domainName);
    练习4:文本文件中存储了多个文章标题、作者,标题和作者之间用若干空格隔开,每行一个。标题有的长有的短,输出到控制台的时候做多标题长度20,如果超过20,则截取长度17的子串并且在后面添加“...”,加一个竖线后输出作者的名字
    string[] lines = System.IO.File.ReadAllLines(@"D:1.txt",Encoding.Default);
    foreach (string line in lines)
    {
    string[] str = line.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);
    string title = str[0];
    string author = str[1];
    title = title.Substring(0, Math.Min(17, title.Length));
    if (title.Length==17)
    {
    title = title + "...";
    }
    Console.WriteLine("{0}|{1}", title, author);
    }
    练习5:从ini格式的文件中(每行是"键=值"格式)中读取配置项的值。编写一个函数来读这些文件:读取指定文件的某个配置项的值
    static void Main(string[] args)
    {
    string value = GetConfigValue(@"D:1.ini", "用户名");
    Console.WriteLine(value);
    Console.ReadKey();
    }
    static string GetConfigValue(string fileName, string itemName)
    {
    string[] lines = System.IO.File.ReadAllLines(fileName, Encoding.Default);
    foreach (string line in lines)
    {
    string[] strs = line.Split('=');
    string name = strs[0].Trim();
    string value = strs[1].Trim();
    if (name==itemName)
    {
    return value;
    }
    }
    return "错误";
    }

     

     

    ps.最近就要毕业了,想去黑马程序员的.NET班培训,就在复习C#基础,这个是杨中科老师的10版视频中的常用的字符串函数

      

     

    个人学习笔记,仅供大家参考!
  • 相关阅读:
    【Auto.js images.matchTemplate() 函数的特点】
    Jquery动态bind绑定已有函数,函数自动执行的问题解决方法
    浅谈javascript的运行机制
    Git
    下拉框的点击事件
    点击其他区域菜单消失
    Chrome 中的 JavaScript 断点设置和调试技巧
    前端编辑工具有感
    我的jsonp跨域问题
    浅谈Json和jsonp
  • 原文地址:https://www.cnblogs.com/yaofch107/p/3458365.html
Copyright © 2011-2022 走看看