C#中实现查找字符串中指定字符位置方法小结

 更新时间:2024年02月20日 09:36:32   作者:wenchm  
这篇文章主要为大家介绍了C#中实现查找字符串中指定字符位置的常用方法,本文将以"."字符为例,详细讲解这些方法的具体使用,需要的可以参考下

在字符串中查找“.”字符,并获得其位置,有很多方法,这些方法也适合查找其它字符:

1.使用IndexOf('.')

在C#中,Text.IndexOf('.')是一种使用IndexOf方法查找字符串中.字符位置的方法。IndexOf方法返回字符在字符串中首次出现的索引位置。如果字符不在字符串中,则返回-1。

以下是C#中Text.IndexOf('.')的用法示例:

// 使用IndexOf在字符串中查找"."并指出其位置
namespace SearchChar
{
    internal class Program
    {
        private static void Main(string[] args)
        {
            ArgumentNullException.ThrowIfNull(args);
 
            string text = "Hello. World!";
            int index = text.IndexOf('.');
            Console.WriteLine(text+"中首次出现符号.的索引= {0}", index.ToString());
        }
    }
}
//运行结果:
/*
Hello. World!中首次出现符号.的索引= 5
 */

2.使用Text.LastIndexOf('.')

此方法返回字符串中最后一个 . 字符的索引。如果字符不在字符串中,则返回 -1。

// 使用LastIndexOf在字符串中查找"."并指出其位置
namespace LastIndexOf
{
    internal class Program
    {
        private static void Main(string[] args)
        {
            ArgumentNullException.ThrowIfNull(args);
 
            string text = "Hello, World!";
            int index = text.LastIndexOf('.');
            Console.WriteLine(text + "中最后出现符号.的索引= {0}", index.ToString());
        }
    }
}
//运行结果:
/*
Hello. World!中首次出现符号.的索引= 5
*/

3.使用Text.IndexOfAny(new char[] { '.', '?' })

此方法返回字符串中 . 或 ? 字符首次出现的索引。如果字符不在字符串中,则返回 -1。

// 使用Text.IndexOfAny(new char[] { '.', '?' })
// 在字符串中查找"."并指出其位置
 
namespace IndexOfAny
{
    internal class Program
    {
        private static void Main(string[] args)
        {
            ArgumentNullException.ThrowIfNull(args);
 
            string text = "Hello. World.";
            int index = text.IndexOfAny(['.', '?']);
            Console.WriteLine(text + "中首次出现符号.的索引= {0}", index.ToString());
        }
    }
}
//运行结果:
/*
Hello. World.中首次出现符号.的索引= 5
*/

4.使用Text.Substring(0, Text.IndexOf("."))

此方法返回字符串中第一个 . 字符之前的部分。

// 使用Substring在字符串中查找"."并指出其位置
namespace Substring
{
    internal class Program
    {
        private static void Main(string[] args)
        {
            ArgumentNullException.ThrowIfNull(args);
 
            string text = "Hello. World!";
            string substring = text.Substring(0, text.IndexOf('.'));
            Console.WriteLine(text + "中首次出现符号.之前的子串= {0}", substring);
            Console.WriteLine(text + "中首次出现符号.索引= {0}", substring.Length);
        }
    }
}
//运行结果:
/*
Hello. World!中首次出现符号.之前的子串= Hello
Hello. World!中首次出现符号.索引= 5
*/

5.使用Text.Split(new char[] { '.' }, StringSplitOptions.RemoveEmptyEntries)

此方法使用 . 字符作为分隔符将字符串拆分为字符串数组,并删除任何空元素。

// 使用Split在字符串中查找"."并指出其位置
namespace Split
{
    internal class Program
    {
        internal static readonly char[] separator = ['.'];
 
        private static void Main(string[] args)
        {
            ArgumentNullException.ThrowIfNull(args);
 
            string text = "Hello. World!";
            string[] parts = text.Split(separator, StringSplitOptions.RemoveEmptyEntries);
            foreach (string part in parts)
            {
                Console.WriteLine(part);
            }
            Console.WriteLine(text + "中首次出现符号.索引= {0}", parts[0].Length);
        }
    }
}
//运行结果:
/*
Hello
 World!
Hello. World!中首次出现符号.索引= 5
 */

6.使用正则表达式Regex.Match(Text, @"\.")

此方法使用正则表达式查找字符串中的第一个子字符串,该子字符串以 . 字符开头,后跟一个或多个字母数字字符或连字符。

// 使用正则表达式在字符串中查找'.'
using System.Text.RegularExpressions;
 
namespace _Regex
{
    internal partial class Program
    {
        private static void Main(string[] args)
        {
            ArgumentNullException.ThrowIfNull(args);
 
            string text = "Hello. World!";
            Regex regex = MyRegex1();
            Match match = regex.Match(text);
 
            if (match.Success)
            {
                int dotIndex = match.Index;
                Console.WriteLine(text + "中首次出现符号.之后的子串= {0}", text.Substring(dotIndex + 1));
                Console.WriteLine(text + "中首次出现符号.索引= {0}", dotIndex);
            }
        }
 
        [GeneratedRegex(@"\.")]
        private static partial Regex MyRegex1();
    }
}
//运行结果:
/*
Hello. World!中首次出现符号.之后的子串=  World!
Hello. World!中首次出现符号.索引= 5
 */

到此这篇关于C#中实现查找字符串中指定字符位置方法小结的文章就介绍到这了,更多相关C#查找指定字符位置内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • C#如何Task执行任务,等待任务完成

    C#如何Task执行任务,等待任务完成

    这篇文章主要介绍了C#如何Task执行任务,等待任务完成,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-06-06
  • Unity通过代码修改按钮点击效果

    Unity通过代码修改按钮点击效果

    这篇文章主要为大家详细介绍了Unity通过代码修改按钮点击效果,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-04-04
  • c#制作简单启动画面的方法

    c#制作简单启动画面的方法

    这篇文章主要介绍了c#制作简单启动画面的方法,涉及C#实现桌面程序启动画面的相关技巧,非常具有实用价值,需要的朋友可以参考下
    2015-04-04
  • C#使用迭代器实现文字动态效果的示例代码

    C#使用迭代器实现文字动态效果的示例代码

    这篇文章主要为大家详细介绍了C#如何通过使用迭代器实现文字动态效果,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下
    2024-02-02
  • C#操作xml文件之Linq To Xml详解

    C#操作xml文件之Linq To Xml详解

    Linq To Xml,不看其他,单纯的看名字都能感觉到,其可以使用灵活且强大的Linq语法,同时也可以使用lambda以及Xpath定位。本文将利用C#实现操作Linq To Xml,感兴趣的可以了解一下
    2022-11-11
  • C#根据权重抽取随机数

    C#根据权重抽取随机数

    最近在开发过程中遇到一个需要做带权随机的处理,本文主要介绍了C#根据权重抽取随机数,具有一定的参考价值,感兴趣的可以了解一下
    2024-02-02
  • 深入分析C#键盘勾子(Hook),屏蔽键盘活动的详解

    深入分析C#键盘勾子(Hook),屏蔽键盘活动的详解

    本篇文章是对C#键盘勾子(Hook),屏蔽键盘活动进行了详细的分析介绍,需要的朋友参考下
    2013-05-05
  • C#在MySQL大量数据下的高效读取、写入详解

    C#在MySQL大量数据下的高效读取、写入详解

    最近由于工作的原因,经常需要对海量数据进行处理,做的数据爬虫相关,动辄千万级别的数据,单表几十个G 都是都是家常便饭。 那么主要的开发语言是C#,数据库使用的是MySQL。下面通过这篇文章我们来一起学习学习吧。
    2016-11-11
  • 基于params,ref,out的参数问题详解

    基于params,ref,out的参数问题详解

    本篇文章是对params,ref,out的参数问题进行了详细的分析介绍,需要的朋友参考下
    2013-06-06
  • C#算法设计与分析详解

    C#算法设计与分析详解

    本文详细讲解了C#的算法设计与分析,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-04-04

最新评论