首頁 > 曲藝

在.NET中,C#字串可查詢位置,可查詢第1次和最後1次出現的位置

作者:由 一都程式設計 發表于 曲藝日期:2023-02-04

1個字等於幾個字元

C#核心開發-第16單元-字串-第3節:查詢字串位置

在.NET中,C#字串可查詢位置,可查詢第1次和最後1次出現的位置

C#核心開發-查詢字串位置

1。 什麼是查詢位置?

查詢位置是指根據指定的字元或字串在原字串中進行查詢,找到該字元或字串所在的索引值,索引值是從0開始的。

在C#中,可以使用IndexOf()和LastIndexOf()方法在字串中查詢某個字元所在位置的索引值。

2。 使用IndexOf()方法查詢位置

C#中的IndexOf()是從字串的左邊開始查詢,只查詢字元第一次出現的位置所在的索引值,索引值是從0開始的,未找到,則返回-1。

在C#中,所有索引值都是int型別,從0開始。

下面我們在。NET控制檯應用程式的Main()方法中舉例說明IndexOf()方法是如何在字串中查詢位置的。

在.NET中,C#字串可查詢位置,可查詢第1次和最後1次出現的位置

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#程式碼執行一下,執行結果如下圖所示:

在.NET中,C#字串可查詢位置,可查詢第1次和最後1次出現的位置

IndexOf()方法查詢到的位置-圖2

我們來驗證一下圖2的結果:

(1)。 原字串:“小強今天早上為了夢想而起的特別早。”,str。IndexOf(‘上’),表示在原字串中查詢“上”單個字元所在的索引值:

在.NET中,C#字串可查詢位置,可查詢第1次和最後1次出現的位置

查詢位置-圖3

從“小”對應的0開始數,數到5時,正好對應的是“上”字元。

(2)。 原字串:“小強今天早上為了夢想而起的特別早。”,str。IndexOf(“夢想”),表示在原字串中查詢“夢想”字串所在的索引值,其實就是查詢“夢”所在的索引值:

在.NET中,C#字串可查詢位置,可查詢第1次和最後1次出現的位置

查詢字串所在位置-圖4

在圖4中,“夢”所在的索引值是8,所以最終結果就是8。

3。 使用LastIndexOf()方法查詢位置

在C#中,LastIndexOf()也是從字串的左邊(也可理解從右邊查詢,但容易出錯)開始查詢的,只查詢字元最後一次出現的位置所在的索引值。

在.NET中,C#字串可查詢位置,可查詢第1次和最後1次出現的位置

LastIndexOf()查詢位置-圖5

使用LastIndexOf()方法查詢字元或字串最後一次出現的位置C#程式碼如下:

int index1 = str。LastIndexOf(‘上’);

int index2 = str。LastIndexOf(‘夢想’);

在此程式碼中,將IndexOf()修改成了LastIndexOf(),執行一下結果:

在.NET中,C#字串可查詢位置,可查詢第1次和最後1次出現的位置

LastIndexOf()查詢的結果-圖6

從圖6的結果上看,發現二者得到的結果是一樣的,這是因為查詢的字元在原字串中只出現了一次。

看下面的例子:

在.NET中,C#字串可查詢位置,可查詢第1次和最後1次出現的位置

C#查詢多次出現的字元-圖7

同一個字元出現多次查詢位置C#程式碼如下:

int index1 = str。IndexOf(‘早’);

int index2 = str。LastIndexOf(‘早’);

在圖7中使用了IndexOf()和LastIndexOf()都查詢字元“早“所在的位置。

執行一下結果:

在.NET中,C#字串可查詢位置,可查詢第1次和最後1次出現的位置

C#查詢多次出現字串位置結果-圖8

此時,我們發現,得到的結果已經不一樣了。

在.NET中,C#字串可查詢位置,可查詢第1次和最後1次出現的位置

C#IndexOf()與LastIndexOf()方法-圖9

在圖9中就能清楚的看到C#中IndexOf()與LastIndexOf()方法的本質區別了:

(1)。 都是從左邊開始查詢字元。

(2)。 索引值是從0開始的。

(3)。 IndexOf()方法只查詢第一次出現的位置,LastIndexOf()方法只查詢最後一次出現的位置。

在.NET中,C#字串可查詢位置,可查詢第1次和最後1次出現的位置

C#深入程式設計-線上影片圖文課堂 配套課後技能作業+理論考試+原始碼

¥

158

淘寶

購買