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 值。

2.示例

 

四、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



*/

相关推荐

  1. C#StringBuilder方法

    2024-01-11 07:32:02       54 阅读
  2. C++休眠方法

    2024-01-11 07:32:02       27 阅读
  3. C#中方法

    2024-01-11 07:32:02       28 阅读
  4. C#String.Format 方法

    2024-01-11 07:32:02       62 阅读
  5. C++split替代方法

    2024-01-11 07:32:02       46 阅读
  6. C# 方法传参

    2024-01-11 07:32:02       39 阅读
  7. C#中扩展方法

    2024-01-11 07:32:02       33 阅读
  8. C# 中匿名方法

    2024-01-11 07:32:02       36 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-01-11 07:32:02       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-01-11 07:32:02       106 阅读
  3. 在Django里面运行非项目文件

    2024-01-11 07:32:02       87 阅读
  4. Python语言-面向对象

    2024-01-11 07:32:02       96 阅读

热门阅读

  1. redis

    redis

    2024-01-11 07:32:02      62 阅读
  2. Hive事务表转换为非事务表

    2024-01-11 07:32:02       55 阅读
  3. VsCode 安装Copilot过程讲解

    2024-01-11 07:32:02       78 阅读
  4. 《Git学习笔记》

    2024-01-11 07:32:02       54 阅读
  5. Rust 工作空间

    2024-01-11 07:32:02       49 阅读
  6. kafka连接失败时springboot项目启动停机问题

    2024-01-11 07:32:02       59 阅读
  7. 网站优化之压缩页面输出

    2024-01-11 07:32:02       48 阅读
  8. Kotlin 1.7.0 beta发布,改进构建器类型推断

    2024-01-11 07:32:02       56 阅读