C#中String.LastIndexOf方法小结

 更新时间:2024年01月22日 09:50:06   作者:wenchm  
String.LastIndexOf()是C#中string类的一个方法,它用于在字符串中查找指定子字符串(或字符)最后一次出现的位置,并返回其索引,本文主要介绍了C#中String.LastIndexOf方法小结,感兴趣的可以了解一下

返回指定 Unicode 字符或字符串在此实例中的最后一个匹配项的从零开始的索引的位置。 如果未在此实例中找到该字符或字符串,则此方法返回 -1。

一、重载

LastIndexOf(String, Int32, Int32, StringComparison)报告指定字符串在此实例中的最后一个匹配项的从零开始的索引的位置。 搜索在所指定的字符位置的数目的字符串开始时,开始指定字符和其后面的位置。 一个参数指定要执行搜索指定字符串的比较类型。
LastIndexOf(String, Int32, StringComparison)报告指定字符串在当前 String 对象中最后一个匹配项的从零开始的索引。 在指定的字符位置开始和在向后的右边该字符串的开头处理的搜索。 一个参数指定要执行搜索指定字符串的比较类型。
LastIndexOf(String, Int32, Int32)报告指定字符串在此实例中的最后一个匹配项的从零开始的索引的位置。 搜索在指定字符位置的数目的字符串开始时,开始指定字符和其后面的位置。
LastIndexOf(Char, Int32, Int32)报告指定的 Unicode 字符在此实例内的子字符串中的最后一个匹配项的从零开始的索引的位置。 搜索在指定字符位置的数目的字符串开始时,开始指定字符和其后面的位置。
LastIndexOf(String, Int32)报告指定字符串在此实例中的最后一个匹配项的从零开始的索引的位置。 在指定的字符位置开始和在向后的右边该字符串的开头处理的搜索。
LastIndexOf(Char, Int32)报告指定 Unicode 字符在此实例中的最后一个匹配项的从零开始的索引的位置。 在指定的字符位置开始和在向后的右边该字符串的开头处理的搜索。
LastIndexOf(String)报告指定字符串在此实例中的最后一个匹配项的从零开始的索引的位置。
LastIndexOf(Char)报告指定 Unicode 字符在此实例中的最后一个匹配项的从零开始的索引的位置。
LastIndexOf(String, StringComparison)报告指定字符串在当前 String 对象中最后一个匹配项的从零开始的索引。 一个参数指定要用于指定字符串的搜索类型。

二、LastIndexOf(String)

报告指定字符串在此实例中的最后一个匹配项的从零开始的索引的位置。

public int LastIndexOf (string value);

参数
value
String
要搜寻的字符串。

返回
Int32
如果找到该字符串,则 value 为从零开始的起始索引位置;如果未找到该字符串,则为 -1。

例外
ArgumentNullException
value 为 null。

三、LastIndexOf(Char)

报告指定 Unicode 字符在此实例中的最后一个匹配项的从零开始的索引的位置。

1.定义

public int LastIndexOf (char value);

参数
value
Char
要查找的 Unicode 字符。

返回
Int32
如果找到该字符,则 value 为从零开始的索引位置;如果未找到,则为 -1。

2.示例

打开一个文件,并分离出文件路径、文件名、文件扩展名。

// Substring和LastIndexOf()
// 分离文件路径、文件名及扩展名
namespace _043
{
    public partial class Form1 : Form
    {
        private Button? button1;
        private GroupBox? groupBox1;
        private Label? label3;
        private Label? label2;
        private Label? label1;
        private OpenFileDialog? openFileDialog1;

        public Form1()
        {
            InitializeComponent();
            Load += Form1_Load;
        }

        private void Form1_Load(object? sender, EventArgs e)
        {
            openFileDialog1 = new OpenFileDialog
            {
                FileName = "openFileDialog1"
            };
            // 
            // button1
            // 
            button1 = new Button
            {
                Location = new Point(141, 12),
                Name = "button1",
                Size = new Size(75, 23),
                TabIndex = 0,
                Text = "打开文件",
                UseVisualStyleBackColor = true
            };
            button1.Click += Button1_Click;
            // 
            // label3
            // 
            label3 = new Label
            {
                AutoSize = true,
                Location = new Point(11, 85),
                Name = "label3",
                Size = new Size(56, 17),
                TabIndex = 2,
                Text = "扩展名:"
            };
            // 
            // label2
            // 
            label2 = new Label
            {
                AutoSize = true,
                Location = new Point(11, 57),
                Name = "label2",
                Size = new Size(56, 17),
                TabIndex = 1,
                Text = "文件名:"
            };
            // 
            // label1
            //      
            label1 = new Label
            {
                AutoSize = true,
                Location = new Point(11, 29),
                Name = "label1",
                Size = new Size(68, 17),
                TabIndex = 0,
                Text = "文件路径:"
            };
            // 
            // groupBox1
            // 
            groupBox1 = new GroupBox
            {
                Location = new Point(12, 41),
                Name = "groupBox1",
                Size = new Size(340, 118),
                TabIndex = 1,
                TabStop = false,
                Text = "文件路径、文件名、扩展名:"
            };
            groupBox1.Controls.Add(label3);
            groupBox1.Controls.Add(label2);
            groupBox1.Controls.Add(label1);
            groupBox1.SuspendLayout();
            // 
            // Form1
            // 
            AutoScaleDimensions = new SizeF(7F, 17F);
            AutoScaleMode = AutoScaleMode.Font;
            ClientSize = new Size(364, 171);
            Controls.Add(groupBox1);
            Controls.Add(button1);
            Name = "Form1";
            StartPosition = FormStartPosition.CenterScreen;
            Text = "分离文件路径、文件名、扩展名";         
            groupBox1.ResumeLayout(false);
            groupBox1.PerformLayout();
        }

        private void Button1_Click(object? sender, EventArgs e)
        {
            if (openFileDialog1!.ShowDialog() == DialogResult.OK)   //判断是否选择了文件
            {
                string str_file = openFileDialog1.FileName;         //记录选择的文件全路径
                string filepath =                                   //获取文件路径
                    str_file[..(str_file.LastIndexOf('\\') + 1)];
                string filename =                                   //获取文件名
                    str_file[(str_file.LastIndexOf('\\') + 1)..str_file.LastIndexOf('.')];
                string file_extension =                             //获取文件扩展名
                    str_file.Substring(str_file.LastIndexOf('.') + 1,
                    str_file.Length - str_file.LastIndexOf('.') - 1);
                label1!.Text = "文件路径: " + filepath;             //显示文件路径
                label2!.Text = "文件名称: " + filename;             //显示文件名
                label3!.Text = "文件扩展名: " + file_extension;     //显示扩展名
            }
        }
    }
}

三、LastIndexOf(String, StringComparison)

报告指定字符串在当前 String 对象中最后一个匹配项的从零开始的索引。 一个参数指定要用于指定字符串的搜索类型。

1.定义

public int LastIndexOf (string value, StringComparison comparisonType);

参数
value
String
要搜寻的字符串。

comparisonType
StringComparison
指定搜索规则的枚举值之一。

返回
Int32
如果找到该字符串,则value 为从零开始的起始索引位置;如果未找到该字符串,则为 -1。

例外
ArgumentNullException
value 为 null。

ArgumentException
comparisonType 不是有效的 StringComparison 值。

四、LastIndexOf(String, Int32, Int32, StringComparison)

报告指定字符串在此实例中的最后一个匹配项的从零开始的索引的位置。 搜索在所指定的字符位置的数目的字符串开始时,开始指定字符和其后面的位置。 一个参数指定要执行搜索指定字符串的比较类型。

public int LastIndexOf (string value, int startIndex, int count, StringComparison comparisonType);

参数
value
String
要搜寻的字符串。

startIndex
Int32
搜索起始位置。 从此实例的 startIndex 开始搜索。

count
Int32
要检查的字符位置数。

comparisonType
StringComparison
指定搜索规则的枚举值之一。

返回
Int32
如果找到该字符串,则value为从零开始的起始索引位置;如果未找到该字符串或当前实例等于 Empty,则为 -1。

例外
ArgumentNullException
value 为 null。

ArgumentOutOfRangeException
count 为负数。
或
当前实例不等于 Empty,并且 startIndex 为负数。
或
当前实例不等于 Empty,并且 startIndex 大于此实例的长度。
或
当前实例不等于 Empty,并且 startIndex + 1 - count 指定不在此实例内的位置。
或
当前实例等于 Empty 并且 start 小于 -1 或大于零。
或
当前实例等于 Empty 并且 count 大于 1。

ArgumentException
comparisonType 不是有效的 StringComparison 值。

五、LastIndexOf(String, Int32, StringComparison)

报告指定字符串在当前 String 对象中最后一个匹配项的从零开始的索引。 在指定的字符位置开始和在向后的右边该字符串的开头处理的搜索。 一个参数指定要执行搜索指定字符串的比较类型。

public int LastIndexOf (string value, int startIndex, StringComparison comparisonType);

参数
value
String
要搜寻的字符串。

startIndex
Int32
搜索起始位置。 从此实例的 startIndex 开始搜索。

comparisonType
StringComparison
指定搜索规则的枚举值之一。

返回
Int32
如果找到该字符串,则value为从零开始的起始索引位置;如果未找到该字符串或当前实例等于 Empty,则为 -1。

例外
ArgumentNullException
value 为 null。

ArgumentOutOfRangeException
当前实例不等于 Empty,并且 startIndex 小于零或大于当前实例的长度。
或
当前实例等于 Empty,并且 startIndex 小于-1 或大于零。

ArgumentException
comparisonType 不是有效的 StringComparison 值。

六、LastIndexOf(String, Int32, Int32)

报告指定字符串在此实例中的最后一个匹配项的从零开始的索引的位置。 搜索在指定字符位置的数目的字符串开始时,开始指定字符和其后面的位置。

public int LastIndexOf (string value, int startIndex, int count);

参数
value
String
要搜寻的字符串。

startIndex
Int32
搜索起始位置。 从此实例的 startIndex 开始搜索。

count
Int32
要检查的字符位置数。

返回
Int32
如果找到该字符串,则value为从零开始的起始索引位置;如果未找到该字符串或当前实例等于 Empty,则为 -1。

例外
ArgumentNullException
value 为 null。

ArgumentOutOfRangeException
count 为负数。
或
当前实例不等于 Empty,并且 startIndex 为负数。
或
当前实例不等于 Empty,并且 startIndex 大于此实例的长度。
或
当前实例不等于 Empty,并且 startIndex - count + 1 指定不在此实例内的位置。
或
当前实例等于 Empty 并且 start 小于 -1 或大于零。
或
当前实例等于 Empty 并且 count 大于 1。

七、LastIndexOf(Char, Int32, Int32)

报告指定的 Unicode 字符在此实例内的子字符串中的最后一个匹配项的从零开始的索引的位置。 搜索在指定字符位置的数目的字符串开始时,开始指定字符和其后面的位置。

public int LastIndexOf (char value, int startIndex, int count);

参数
value
Char
要查找的 Unicode 字符。

startIndex
Int32
搜索的起始位置。 从此实例的startIndex开始搜索。

count
Int32
要检查的字符位置数。

返回
Int32
如果找到该字符,则value为从零开始的索引位置;如果未找到该字符或当前实例等于 Empty,则为 -1。

例外
ArgumentOutOfRangeException
当前实例不等于 Empty,并且 startIndex 小于零或大于等于当前实例的长度。
或
当前实例不等于 Empty,并且 startIndex - count + 1 小于零。

八、LastIndexOf(String, Int32)

报告指定字符串在此实例中的最后一个匹配项的从零开始的索引的位置。 在指定的字符位置开始和在向后的右边该字符串的开头处理的搜索。

public int LastIndexOf (string value, int startIndex);

参数
value
String
要搜寻的字符串。

startIndex
Int32
搜索起始位置。 从此实例的startIndex开始搜索。

返回
Int32
如果找到该字符串,则为 value 的从零开始的起始索引位置;如果未找到该字符串或当前实例等于 Empty,则为 -1。

例外
ArgumentNullException
value 为 null。

ArgumentOutOfRangeException
当前实例不等于 Empty,并且 startIndex 小于零或大于当前实例的长度。
或
当前实例等于 Empty,并且 startIndex 小于-1 或大于零。

九、LastIndexOf(Char, Int32)

报告指定 Unicode 字符在此实例中的最后一个匹配项的从零开始的索引的位置。 在指定的字符位置开始和在向后的右边该字符串的开头处理的搜索。

1.定义

public int LastIndexOf (char value, int startIndex);

参数
value
Char
要查找的 Unicode 字符。

startIndex
Int32
搜索的起始位置。 从此实例的startIndex开始搜索。

返回
Int32
如果找到该字符,则value为从零开始的索引位置;如果未找到该字符或当前实例等于 Empty,则为 -1。

例外
ArgumentOutOfRangeException
当前实例不等于 Empty,并且 startIndex 小于零或大于等于当前实例的长度。

2.示例

// Sample for String.LastIndexOf(Char, Int32)
namespace LastIndexOf
{
    class Sample
    {
        public static void Main()
        {

            string br1 = "0----+----1----+----2----+----3----+----4----+----5----+----6----+-";
            string br2 = "0123456789012345678901234567890123456789012345678901234567890123456";
            string str = "Now is the time for all good men to come to the aid of their party.";
            int start;
            int at;

            start = str.Length - 1;
            Console.WriteLine("All occurrences of 't' from position {0} to 0.", start);
            Console.WriteLine("{1}{0}{2}{0}{3}{0}", Environment.NewLine, br1, br2, str);
            Console.Write("The letter 't' occurs at position(s): ");

            at = 0;
            while (start > -1 && at > -1)
            {
                at = str.LastIndexOf('t', start);
                if (at > -1)
                {
                    Console.Write("{0} ", at);
                    start = at - 1;
                }
            }
            Console.Write("{0}{0}{0}", Environment.NewLine); //3个空行
        }
    }
}
/*
运行结果:
All occurrences of 't' from position 66 to 0.
0----+----1----+----2----+----3----+----4----+----5----+----6----+-
0123456789012345678901234567890123456789012345678901234567890123456
Now is the time for all good men to come to the aid of their party.

The letter 't' occurs at position(s): 64 55 44 41 33 11 7



*/

到此这篇关于C#中String.LastIndexOf方法小结的文章就介绍到这了,更多相关C# String.LastIndexOf内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家! 

相关文章

  • C#实现一键清空控件值的示例代码

    C#实现一键清空控件值的示例代码

    这篇文章主要为大家详细介绍了如何利用C#语言实现一键清空控件值的功能,文中的示例代码讲解详细,对我们学习C#有一定帮助,需要的可以参考一下
    2022-09-09
  • C# Cache缓存读取的设置方法

    C# Cache缓存读取的设置方法

    这篇文章主要介绍了C# Cache缓存读取的设置方法,帮助大家更好的理解和学习使用c#,感兴趣的朋友可以了解下
    2021-03-03
  • C#/VB.NET实现从PPT中提取图片的示例代码

    C#/VB.NET实现从PPT中提取图片的示例代码

    PPT是用于制作幻灯片(演示文稿)的应用软件,每张幻灯片中都可以包含文字、图形、图形、表格、声音和影像等多种信息。本文主要介绍了如何实现从PPT中提取图片的功能,需要的可以参考一下
    2023-03-03
  • c#使用filesystemwatcher实时监控文件目录的添加和删除

    c#使用filesystemwatcher实时监控文件目录的添加和删除

    本文主要描述如何通过c#实现实时监控文件目录下的变化,包括文件和目录的添加,删除,修改和重命名等操作
    2014-01-01
  • 浅析C# 装箱和拆箱

    浅析C# 装箱和拆箱

    这篇文章主要介绍了C# 装箱和拆箱的相关资料,文中示例代码非常详细,帮助大家更好的理解和学习,感兴趣的朋友可以了解下
    2020-07-07
  • 浅谈c# 面向对象之类与对象

    浅谈c# 面向对象之类与对象

    这篇文章主要介绍了c# 面向对象的类与对象的相关知识,非常的浅显易懂,有需要的小伙伴参考下。
    2014-12-12
  • C# WINFORM自定义异常处理方法

    C# WINFORM自定义异常处理方法

    这篇文章主要介绍了一个简单的统一异常处理方法。系统底层出现异常,写入记录文件,系统顶层捕获底层异常,显示提示信息。需要的可以参考一下
    2021-12-12
  • C#设计模式之Builder生成器模式解决带老婆配置电脑问题实例

    C#设计模式之Builder生成器模式解决带老婆配置电脑问题实例

    这篇文章主要介绍了C#设计模式之Builder生成器模式解决带老婆配置电脑问题,简单介绍了生成器模式的概念、功能并结合具体实例形式分析了C#生成器模式解决配电脑问题的步骤与相关操作技巧,需要的朋友可以参考下
    2017-09-09
  • C#使用Dynamic实现简化反射

    C#使用Dynamic实现简化反射

    这篇文章主要为大家详细介绍了C#如何使用Dynamic来实现简化反射,文中的示例代码讲解详细,具有一定的学习价值,感兴趣的小伙伴可以了解一下
    2023-07-07
  • Unity实现植物识别示例详解

    Unity实现植物识别示例详解

    这篇文章主要介绍了如何通过Unity接入百度AI实现植物识别,接口返回植物的名称,并支持获取识别结果对应的百科信息。感兴趣的可以了解一下
    2022-01-01

最新评论