C#で文字列を辞書式順序で比較する方法(string.Compareの使い方)
C#における文字列比較の基本
C#で2つの文字列を辞書式順序(レキシコグラフィック順)で比較するには、string.Compare()メソッドを使用します。このメソッドは2つの文字列を比較し、その結果を以下の整数値として返します。
- -1:str1がstr2より小さい(辞書式順序で前に来る)場合
- 0:str1とstr2が等しい場合
- 1:str1がstr2より大きい(辞書式順序で後に来る)場合
string.Compare()メソッドの構文
比較したい2つの文字列を引数として指定します。
string.Compare(string1, string2);
サンプルコード
以下のコードは、「amit」と「Amit」という2つの文字列を比較する例です。デフォルトの比較ではカルチャに依存した規則が適用されるため、大文字と小文字の違いも大小関係の判定に影響します。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Demo {
class MyApplication {
static void Main(string[] args) {
string string1 = null;
string string2 = null;
string1 = "amit";
string2 = "Amit";
int myOutput = 0;
myOutput = string.Compare(string1, string2);
Console.WriteLine(myOutput.ToString());
Console.ReadLine();
}
}
}
実行結果
-1
この例では「amit」が「Amit」よりも辞書式順序で前と判定され、-1が出力されます。
補足:大文字・小文字を無視して比較するには
大文字と小文字の違いを無視して比較したい場合は、第3引数にStringComparisonオプションを指定します。
int result = string.Compare(string1, string2, StringComparison.OrdinalIgnoreCase);
このように指定すると、「amit」と「Amit」は同一の文字列として扱われ、結果は0になります。用途に応じて適切な比較方法を選択することで、意図した通りの文字列比較が可能になります。
-
Pythonで2つの文字列に共通する単語の数を求める方法
2つの文字列 s0 と s1 があり、それぞれが1つの文を表しているとします。このとき、両方の文に共通して含まれる単語(重複は数えない)の個数を求める問題を考えてみましょう。なお、単語の比較では大文字・小文字を区別しないため、「tom」と「ToM」は同じ単語として扱われます。 たとえば、入力が s0 = i love python coding、s1 = coding in python is easy の場合、共通する単語は [python, coding] の2つなので、出力は 2 になります。 解決のための手順 この問題は、次の手順で解くことができます。 s0 と s1 をすべて小文字
-
Pythonの正規表現(reモジュール)で2つの文字列を比較する方法
Pythonでは、標準ライブラリのreモジュールを利用することで、正規表現による文字列の比較や照合を簡単に行えます。最も一般的な方法は、re.search()関数を使って、一方の文字列(パターン)がもう一方の文字列の中に存在するかどうかを調べるアプローチです。 re.search()を使った比較の基本例 以下のコードでは、文字列s1を正規表現パターンとして扱い、それが文字列s2内にマッチするかどうかを判定しています。 import re s1 = Pink Forest s2 = Pink Forrest if bool(re.search(s1, s2)) == True: pr