プログラム 技術

文字列に含まれる空白などを無視して比較する

仕事などで文字列を比較することが多々あり、その際に半角や全角を気にする必要がありました
今回紹介する機能を使用すればそこら辺を気にすることがなくなりそうです
C#の純粋な機能のため特に追加作業はありません

比較内容を設定する

比較内容を設定します
それぞれの設定を「|(パイプライン)」でつなぐことで複数指定できます
必要に応じて適宜設定してください

// 比較条件を設定
CompareOptions compareOptions =
    // 大文字小文字を区別しない
    CompareOptions.IgnoreCase |
    // 全角半角を区別しない
    CompareOptions.IgnoreWidth |
    // ひらがなカタカナを区別しない
    CompareOptions.IgnoreKanaType |
    // 空白や記号を無視する
    CompareOptions.IgnoreSymbols;

文字列を比較する

以下の文字列を演算子で比較するとFalseが返ってきます
CompareOptionsに設定した内容とCompareInfoクラスを使用するとTrueが返ってきます

string test1 = "AbcD E F"
string test2 = ".abcdef/"

// 演算子で比較する
// Falseが返ってくる
Console.WriteLine($"{test1} と {test2} の比較 { test1 == test2 }")

// CompareOptionsとCompareInfoで比較する
// 文字列比較を使用するため、現在の使用言語のCompareInfoを取得
CompareInfo compareInfo = CultureInfo.CurrentCulture.CompareInfo;
// Trueが返ってくる
Console.WriteLine($"{compareInfo.Compare(text1, text2, compareOptions) == 0}");

文字列が含まれているかをチェック

以下の文字列をIndexOfでチェックすると -1 が返ってきて含まれていないと判断されています
CompareOptionsに設定した内容とCompareInfoクラスを使用すると含まれていると判断されます

string test1 = "あAbcd"
string test2 = "aBc"

// IndexOfでチェック
// -1 が返ってくる
Console.WriteLine($"{test1.IndexOf(test2)}");

// CompareOptionsとCompareInfoでチェックする
// Trueが返ってくる(0より大きい値だと含まれていると判定)
Console.WriteLine($"{compareInfo.IndexOf(text1, text2, compareOptions) > 0}");

会社紹介

私が所属しているアドバンスド・ソリューション株式会社(以下、ADS)は一緒に働く仲間を募集しています

会社概要
「技術」×「知恵」=顧客課題の解決・新しい価値の創造

この方程式の実現はADSが大切にしている考えで、技術を磨き続けるgeekさと、顧客を思うloveがあってこそ実現できる世界観だと思っています
この『love & geek』の精神さえあれば、得意不得意はno problem!
技術はピカイチだけど顧客折衝はちょっと苦手。OKです。技術はまだ未熟だけど顧客と知恵を出し合って要件定義するのは大好き。OKです
凸凹な社員の集まり、色んなカラーや柄の個性が集まっているからこそ、常に新しいソリューションが生まれています。

ミッション
私たちは、テクノロジーを活用し、業務や事業の生産性向上と企業進化を支援します

ホームページ
アドバンスド・ソリューション株式会社
アドバンスド・ソリューション株式会社

アドバンスド・ソリューションは主にMicrosoft製品を使用して、企業の生産性向上に取り組んでいます。要件定義から導入 ...

サイトへ移動

お問い合わせ
お問い合わせ  | アドバンスド・ソリューション株式会社
お問い合わせ | アドバンスド・ソリューション株式会社

お問い合わせはこちら

-プログラム, 技術
-