1個字等於幾個字元
C#核心開發-第16單元-字串-第3節:查詢字串位置
C#核心開發-查詢字串位置
1。 什麼是查詢位置?
查詢位置是指根據指定的字元或字串在原字串中進行查詢,找到該字元或字串所在的索引值,索引值是從0開始的。
在C#中,可以使用IndexOf()和LastIndexOf()方法在字串中查詢某個字元所在位置的索引值。
2。 使用IndexOf()方法查詢位置
C#中的IndexOf()是從字串的左邊開始查詢,只查詢字元第一次出現的位置所在的索引值,索引值是從0開始的,未找到,則返回-1。
在C#中,所有索引值都是int型別,從0開始。
下面我們在。NET控制檯應用程式的Main()方法中舉例說明IndexOf()方法是如何在字串中查詢位置的。
C#中的IndexOf()方法查詢字串位置的完整程式碼如下:
using System;
using System。Collections。Generic;
using System。Linq;
using System。Text;
using System。Threading。Tasks;
using System。Text。RegularExpressions;
namespace Yidosoft。Edu。Csharp。StringRegEx
{
class Program
{
static void Main(string[] args)
{
Console。Title = “一都程式設計 - 字串”;
string str = “小強今天早上為了夢想而起的特別早。”;
//查詢位置
int index1 = str。IndexOf(‘上’);
int index2 = str。IndexOf(‘夢想’);
Console。WriteLine(index1);
Console。WriteLine(index2);
Console。ReadKey();
}
}
}
此C#程式碼段說明如下:
(1)。 IndexOf()方法的引數可以是char型別,也可以是string型別,當查詢的是單個的字元,則使用char型別,如果是多個的字元,則使用string型別。
(2)。 如果查詢的是多個字元,則只查詢第1個字元所在的位置。
將以上C#程式碼執行一下,執行結果如下圖所示:
IndexOf()方法查詢到的位置-圖2
我們來驗證一下圖2的結果:
(1)。 原字串:“小強今天早上為了夢想而起的特別早。”,str。IndexOf(‘上’),表示在原字串中查詢“上”單個字元所在的索引值:
查詢位置-圖3
從“小”對應的0開始數,數到5時,正好對應的是“上”字元。
(2)。 原字串:“小強今天早上為了夢想而起的特別早。”,str。IndexOf(“夢想”),表示在原字串中查詢“夢想”字串所在的索引值,其實就是查詢“夢”所在的索引值:
查詢字串所在位置-圖4
在圖4中,“夢”所在的索引值是8,所以最終結果就是8。
3。 使用LastIndexOf()方法查詢位置
在C#中,LastIndexOf()也是從字串的左邊(也可理解從右邊查詢,但容易出錯)開始查詢的,只查詢字元最後一次出現的位置所在的索引值。
LastIndexOf()查詢位置-圖5
使用LastIndexOf()方法查詢字元或字串最後一次出現的位置C#程式碼如下:
int index1 = str。LastIndexOf(‘上’);
int index2 = str。LastIndexOf(‘夢想’);
在此程式碼中,將IndexOf()修改成了LastIndexOf(),執行一下結果:
LastIndexOf()查詢的結果-圖6
從圖6的結果上看,發現二者得到的結果是一樣的,這是因為查詢的字元在原字串中只出現了一次。
看下面的例子:
C#查詢多次出現的字元-圖7
同一個字元出現多次查詢位置C#程式碼如下:
int index1 = str。IndexOf(‘早’);
int index2 = str。LastIndexOf(‘早’);
在圖7中使用了IndexOf()和LastIndexOf()都查詢字元“早“所在的位置。
執行一下結果:
C#查詢多次出現字串位置結果-圖8
此時,我們發現,得到的結果已經不一樣了。
C#IndexOf()與LastIndexOf()方法-圖9
在圖9中就能清楚的看到C#中IndexOf()與LastIndexOf()方法的本質區別了:
(1)。 都是從左邊開始查詢字元。
(2)。 索引值是從0開始的。
(3)。 IndexOf()方法只查詢第一次出現的位置,LastIndexOf()方法只查詢最後一次出現的位置。
C#深入程式設計-線上影片圖文課堂 配套課後技能作業+理論考試+原始碼
¥
158
淘寶
購買