今日之自學筆記
淺談在C#中字串相關的查找方法有IndexOf、LastlndexOf
IndexOf : 指定字串在原字串中第一次出現的位置
LastlndexOf : 指定字串在查找的字串中最後一次出現的位置
如果要判斷字串中是否只含有一個指定的字串,則需要將IndexOf 和LastlndexOf 方法一起使用
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個位置
我們先用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("在您輸入的字串中並不包含@");
}
}
結果如下 我輸入了三個@
PS : IndexOf、LastIndexOf都是返回一個位置,是個整數值;找不到都返回-1;
IndexOf是從左向右查,LastIndexOf是從右向左查,
不管是IndexOf還是LastIndexOf,索引序列都是從左到右的(起始值是0)
簡易介紹一下這兩個用法
更詳細可以參考這篇來源
[C#]String常用技巧整理(IndexOf、LastIndexOf、Substring、Split)