C#で文字列配列内の単語のインデックスを検索する方法
C#では、Array.IndexOf()メソッドを使用することで、文字列配列の中から特定の単語が格納されている位置(インデックス)を簡単に取得できます。この記事では、実際のコード例を通じてその使い方を解説します。
1. 配列の宣言と初期化
まず、検索対象となる文字列配列を宣言し、初期化します。
string[] str = new string[] {
"Cat",
"Mat",
"Rat"
};2. IndexOf()メソッドでインデックスを検索
次に、IndexOf()メソッドを使って、「Mat」という単語のインデックスを検索します。
Array.IndexOf(str, "Mat");
このメソッドは、指定した要素が見つかった場合、そのインデックス(0から始まる番号)を返します。要素が存在しない場合は -1 を返すため、検索結果の判定にも利用できます。
サンプルコード
using System;
public class Demo {
public static void Main() {
string[] str = new string[] {
"Cat",
"Mat",
"Rat"
};
Console.WriteLine("Our Array =");
for (int i = 0; i < str.Length; i++) {
string res = str[i];
Console.WriteLine(res);
}
int findIndex = Array.IndexOf(str, "Mat");
Console.Write("Element Mat found at the following index: ");
Console.WriteLine(findIndex);
}
}実行結果
Our Array = Cat Mat Rat Element Mat found at the following index: 1
解説
このプログラムでは、まず for ループを使って配列のすべての要素をコンソールに出力しています。その後、Array.IndexOf(str, "Mat") を呼び出すことで、「Mat」が配列のどの位置にあるかを取得しています。
実行結果を見ると、「Mat」は配列の2番目の要素であるため、インデックス 1 が出力されます。C#の配列は0から始まるため、先頭の「Cat」が0、「Mat」が1、「Rat」が2となります。
なお、大文字・小文字を区別せずに検索したい場合は、LINQの FindIndex() メソッドと StringComparison.OrdinalIgnoreCase を組み合わせる方法もあります。用途に応じて使い分けるとよいでしょう。
-
Pythonで文字列内の最初の繰り返し文字のインデックスを検索する方法
文字列 s が与えられたとき、その中で最初に繰り返し出現する文字のインデックスを求める問題を考えてみましょう。繰り返し文字がひとつも存在しない場合は、-1 を返します。 例えば、入力が "abcade" の場合、出力は 3 になります。これは、文字 a がインデックス 3 の位置に再び現れているためです。 解法のアプローチ この問題を解くには、以下の手順に従います。 文字の出現履歴を記録するための辞書(マップ)chars を定義します。 i を 0 から文字列の長さまで順にループさせます。 s[i] がすでに chars に存在する場合、その時点のインデックス i を
-
Pythonで文字列内の最初に繰り返される単語を見つける方法
文字列が1つ与えられ、その中で最初に繰り返し出現する単語を見つけるのが本記事のテーマです。この問題を実装する際には、Pythonの標準ライブラリである「collections」モジュールを活用します。collectionsが提供するCounter()クラスを使うことで、各単語の出現回数を簡単に集計できます。 アルゴリズム 処理の手順は以下のとおりです。 与えられた文字列をスペースで区切り、単語のリストに分割します。 単語のリストをCounter(辞書形式)に変換し、各単語の出現回数を集計します。 単語のリストを先頭から順に走査し、出現回数が1より多い最初の単語を特定します。 サンプルコード