首页 > 编程语言 >C# 返回字符串 string 中某一个字符第几次出现的位置所在的索引位置

C# 返回字符串 string 中某一个字符第几次出现的位置所在的索引位置

时间:2023-12-26 14:15:29浏览次数:39  
标签:count index ch return string C# 第几次 int str

 // 返回 str 从前往后,第 count 次出现 ch 字符处的索引位置,失败返回 -1;
 protected static int IndexOf(string str, char ch, int count)
 {
     if (count < 1)
     {
         return -1;
     }

     int index = -1;
     for (int i = 0; i < count; ++i)
     {
         index = str.IndexOf(ch, ++index);
         if (index == -1)
         {
             return -1;
         }
     }
     return index;
 }


// 返回 str 从后往前,第 count 次出现 ch 字符处的索引位置,失败返回 -1;
protected static int LastIndexOf(string str, char ch, int count)
{
    if (count < 1)
    {
        return -1;
    }
    
    int index = str.Length;
    for (int i = 0; i < count; ++i)
    {
        index = str.LastIndexOf(ch, --index);
        if (index == -1)
        {
            return -1;
        }
    }
    return index;
}

找到这个索引位置后,如果要截取字符串直接:str.Remove(index);就可以了。

标签:count,index,ch,return,string,C#,第几次,int,str
From: https://www.cnblogs.com/huvjie/p/17927981.html

相关文章

  • 特斯拉Cybertruck的十大“黑科技”
    https://www.cnbeta.com.tw/articles/tech/1406947.htm特斯拉Cybertruck之所以被称为道路上最狂野的车辆,不仅仅是因为它的外形看起来像一个巨大的不锈钢三角形,也因为它拥有行业领先的创新技术和炫酷功能。从坚硬的金属外观到48V电气系统,Cybertruck堪称工程奇迹。特斯拉首席执行......
  • 汇编-ASCII十六进制数和非压缩十六进制数
     非压缩十进制整数的高4位总是为零,而ASCII十进制数的高4位则等于0011b。在任何情况下,这两种类型的整数的每个数字都占用一个字节。下面的例子展示了3402在两种格式下是如何存放的: 尽管ASCII算术运算执行得比二进制算术运算要慢,但是它有两个明显的优点:●无须在执行算术运......
  • [题解]CF1811D Umka and a Long Flight
    思路假设原题目中的\(n\)在本文中为\(num\),则原长方形的长\(m=f_{num+1}\)和宽\(n=f_{num}\)。显然对于最初始的长方形,显然是要将一个\(f_{num}\timesf_{num}\)的长方形丢进去的,并且要么放最左边,要么放在最右边。因为对于当前的\(m=f_{num+1}=f_{num}+......
  • 手工调用Transaction
    除了用@Transactional外还可以手工调用PlatformTransactionManagertransactionManager=(PlatformTransactionManager)SpringBeanUtil.getBean(PlatformTransactionManager.class);DefaultTransactionDefinitiontransactionDefinition=newDefaultTransactionDe......
  • cython,将py文件编译成pyd/so文件
    在windows下使用cythonize可以将py文件编译成pyd,这样就完成了初步的python代码加密工作使用前需要先安装CythonpipinstallCython然后对py文件执行命令cythonize-i-3--directivealways_allow_keywords=truexxx.py这里有一个要注意的点:--directivealways_allow_keywor......
  • C# RichTextBox的上标及文字大小
    C#RichTextBox进行上下标的处理,单纯的文本控件TextBox满足不了这个功能,必须使用RichTextBox富文本控件来实现,具体效果如下:未设置上标字体大小前:设置上标的字体大小后: 具体的代码如下:this.richTextBox1.SelectedText="mm";this.richTextBox1.......
  • MySQL对所有的表增加一个biz_e varchar255,如何快速实现?
    --先在数据库中创建一个存储过程DELIMITER//--先在数据库中创建一个存储过程DELIMITER//CREATEPROCEDUREAddBizEToTables()BEGINDECLAREdoneINTDEFAULT0;DECLAREtableNameVARCHAR(255);DECLAREcurCURSORFORSELECTtable_name......
  • S71500 OPCUA 通讯
    S71500OPCUA通讯(PLC作为OPCUAServer)测试工具:1,博图V172,PLCSIMAdvanced3.03,OPCUAClient测试步骤:博图中的设置1,在博图中新建项目,组态设备,这里要注意,PLCSIMAdvanced3.0支持的CPU版本最高只能到2.8,因此版本选择2.8就可以了2,在项目视图的设备组态中,把这几个地方勾上 3,运行系......
  • KingIOServer连接S7-200 SMART PLC
    硬件:西门子200SMARTPLCSR30软件环境:1,PLC编程软件Step7Micro/WINSMART2,组态王KingIOServer具体步骤:1,打开KingIOServer工程设计器,然后新建应用/工程,输入应用名称,然后确定2,左侧项目树,设备-右键 3,左侧项目树,变量-右键,新建变量4,编译,运行 5,在弹出的窗口中,启动运行,查看变量连......
  • Mac安装Mysql5.7
    官网https://downloads.mysql.com/archives/community/下载Mysql5.7.31,再高5.7版本没有macOS选项安装安装完毕会弹出帐号密码这里要把密码记住,待会用mysqladmin重置密码时要用。启动mysql服务系统设置拉到最下面,启动mysql服务启动成功设置mysql服务端mysql命令别名aliasmysql=/usr......