zoukankan      html  css  js  c++  java
  • 定位字符和子串

    System.String使用从0看是的序号索引,来定位字符串中的单个字符,所以,可以利用访问数组的方式来定位字符

    代码如下

     string str = "这是一个定位字符串的示例";
                    Console.WriteLine(str);
                    Console.WriteLine("索引值为1的字符串为{0}",str[1]);
                    Console.WriteLine("索引值为4的字符串为{0}",str[4]);
                    Console.WriteLine("用String类型实现了IEnumerable<char>和IEnumerable接口,所以,可以用foeeach遍历");
                    foreach (char  item in str)
                    {
                        Console.Write(item);

                    }

    上面我用foreach遍历这个字符串因为在System.String中实现了IEnumerable<char>泛型接口和IEnumerable接口,也可以使用for来遍历。

    为了定位字符串子串,System.String 中提供了很多的方法来实现这个功能,其中比较常用的是SubString方法,在Substring方法是实例的方法,具有两种重载形式。

    //获取从指定索引开始的子字符串,

    public string Substring(int  StartIndex)

    //获取从制定的索引开始,并具有定长的子串

    public string  SubString(int StartIndex ,int length)

    另外system.String 中提还提供了, StartWith,EndWith, IndexOf, indexOfAny,LastindexOf,LastindexOfAny   下面举一个综合的实例演示这些方法。

    string str = "++这是一个综合使用定位字符串方法的C#示例++";
                    Console.WriteLine(str);
                    Console.WriteLine("从字符串中过滤掉++字符");
                      // 使用TrimStart和TrimEnd截取指定字符数组的字符
                    string tempstr = str.TrimStart("++".ToCharArray()).TrimEnd("++".ToCharArray());
                    Console.WriteLine("使用TrimStart和TrimEnd截取指定字符数组的字符{0}的结果",tempstr);
                    //使用Substring 方法截取字符串中的指定字符
                    tempstr = str.Substring(0, str.LastIndexOfAny("++".ToCharArray()) - 1);
                    tempstr = str.Substring(0, str.LastIndexOfAny("++".ToCharArray()) + 1);
                    Console.WriteLine("使用Substrin的实现结果是{0}",tempstr);
                    Console.WriteLine("使用StartWith与EndWith方法");
                // 判断指定的字符串++是否从str字符串的开头,如果是返回true 否则返回false
                    if (str.StartsWith("++"))
                    {
                    Console.WriteLine("字符串以子串++作为开头");
                    }
                   // 判断指定的字符串++是否从str字符串的结束,如果是返回true 否则返回false
                    if (str.EndsWith("++"))
                    {
                        Console.WriteLine("这个是以子串++结尾");
                    }
               // 获取指定的字符串+在字符串str中位置,如果存在返回字符串中的索引
                    Console.WriteLine("str.IndexOf方法");
                    int i = str.IndexOf("+");
                    if (i >= 0 )
                    {
                        Console.WriteLine("+字符存在与str字符串中,索引位置是{0}",i);
                    }
                    else
                    {
                        Console.WriteLine("+字符不存在与str字符串中");
                    }
                    Console.WriteLine("str.IndexOfAny()");
                   //获取指定字符数组++在字符串的位置,如果存在,则返回字符串中的索引
                    i = str.IndexOfAny("++".ToCharArray(), 0, str.Length - 1);
                    if (i >= 0)
                    {
                        Console.WriteLine("++字符存在与str字符串中,索引位置是{0}", i);
                    }
                    else
                    {
                        Console.WriteLine("++字符不存在与str字符串中");
                    }
                    Console.WriteLine("str.LastIndexOf()");
                    i = str.LastIndexOf("+");
                    if (i >= 0)
                    {
                        Console.WriteLine("+字符存在与str字符串中,索引位置是{0}", i);
                    }
                    else
                    {
                        Console.WriteLine("+字符不存在与str字符串中");
                    }

  • 相关阅读:
    IOS 11 通讯录手机号「隐形字符」的 Bug
    本地添加const参数 防止短信接口恶意调用
    javascript阿拉伯数字 转 汉字中文数字
    js去掉数组的空字符串
    Chrome 清除某个特定网站下的缓存
    vue-cli中的babel配置文件.babelrc详解
    提交到github报错Please tell me who you are
    跨域问题
    js单线程、js任务队列、异步操作
    Java 异常
  • 原文地址:https://www.cnblogs.com/lichen396116416/p/1919297.html
Copyright © 2011-2022 走看看