C#
 Computer >> コンピューター >  >> プログラミング >> C#

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になります。用途に応じて適切な比較方法を選択することで、意図した通りの文字列比較が可能になります。

  1. 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 をすべて小文字

  2. 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