认识C# 的 IndexOf 与 LastIndexOf

今日之自学笔记

浅谈在C#中字串相关的查找方法有IndexOf、LastlndexOf

IndexOf : 指定字串在原字串中第一次出现的位置
LastlndexOf : 指定字串在查找的字串中最後一次出现的位置

如果要判断字串中是否只含有一个指定的字串,则需要将IndexOf 和LastlndexOf 方法一起使用

【范例1】输入一个字串,然後判断字串中是否含有@, 并输出@ 的位置

(运用IndexOf方法)

void Main()
{
	string str = Console.ReadLine();
	if(str.IndexOf("@")!= -1)//只要指定的字串在查找的字串中不存在 结果都是-1
	{
		Console.WriteLine("@的位置在{0}",str.IndexOf("@") +1 );
        //字串位置电脑从0开始数 所以要+1 ,让我们从1开始算
	}
	else
	{
		Console.WriteLine("里面不包含@");//如果里面没有此字串就列印出"里面不包含@"
	}
}

正确结果如下

我输入一串字串为 ABCD@FG 我们从1开始算 所以应该是在第5个位置
https://ithelp.ithome.com.tw/upload/images/20220325/20135530dVD7olAJHB.jpg

【范例2】输入一个字符串,判断该字串中是否仅含有一个@?

(运用IndexOf和LastlndexOf方法)

我们先用IndexOf 方法查找第一个@
判断他出现的位置和用LastlndexOf 方法查找@ 在字串中最後一次出现的位置是否相同

void Main()
{
            string str = Console.ReadLine();
            int firstIndex = str.IndexOf("@");
            int lastIndex = str.LastIndexOf("@");
            if (firstIndex != -1) //先做第一步判断是否str内有包含@如果有 进行下一个判断
            {
                if (firstIndex == lastIndex)//如果只含有一个@
                {
                    Console.WriteLine("在您输入的字串中只含有一个@");
                }
                else //反之就跳出以下讯息
                {
                    Console.WriteLine("在您输入的字串中含有多个@");
                }
            }
            else
            {
                Console.WriteLine("在您输入的字串中并不包含@");
            }
}

结果如下 我输入了三个@

https://ithelp.ithome.com.tw/upload/images/20220325/20135530j0Pa8uc04J.jpg

PS : IndexOf、LastIndexOf都是返回一个位置,是个整数值;找不到都返回-1;
IndexOf是从左向右查,LastIndexOf是从右向左查,
不管是IndexOf还是LastIndexOf,索引序列都是从左到右的(起始值是0)

简易介绍一下这两个用法

更详细可以参考这篇来源
[C#]String常用技巧整理(IndexOf、LastIndexOf、Substring、Split)

以及官网
String.IndexOf 方法



每日小分享 如何改善拖延症?(我简直拖延症末期哈哈)
改善拖延症


<<:  如何在 Android 和 iOS 设备上启用 YouTube 後台播放(不用下载)-2022

>>:  ISO 27001 资讯安全管理系统 【解析】(十八)

Day 18:广度优先搜寻(BFS)

上一回提到广度优先搜寻的步骤是检查图中节点,并将与其相连的节点放入伫列中,再一一检查。 光是这样的文...

Day 02-资源管理大师IAM

AWS Certified Solution Architect Associate之旅的第一站,我...

Day30 - 回顾

踏入区块链一年多,回想起参加过的线下聚会、线上课程,都让我觉得很充实。 虽然觉得区块链是一个当前有点...

Turbo Pascal 语言和你 SAY HELLO!!

第二十八天 各位点进来的朋友,你们好阿 小的不才只能做这个系列的文章,但还是希望分享给点进来的朋友,...

电子书阅读器上的浏览器 [Day06] 增加翻页按钮和分页数字资讯在工具列

新增翻页按钮 browser 画面下方的工具列其实还蛮空旷的,应该可以多塞点功能进来。与其用手势滑动...