string型変数の先頭の文字を判定する - StartsWith メソッドの利用 - C#
string型変数の先頭の文字を判定するコードを紹介します。
概要
string型の先頭の文字列を判定する場合には,
StartsWith
メソッドを利用すると容易に実装できます。
書式
[stringオブジェクト].StartsWith([比較文字])
または
[stringオブジェクト].StartsWith([比較文字列])
[stringオブジェクト].StartsWith([比較文字列], [StringComparison])
[stringオブジェクト].StartsWith([比較文字列], [大文字小文字を区別するか], [比較に利用するCultureInfo])
先頭が一致していた場合には true が返ります。
例
UI
下図のUIを作成します。テキストボックスを3つ、ボタンを1つ配置します。
コード
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace StringMatch
{
public partial class FormStartsWith : Form
{
public FormStartsWith()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
string pattern = textBox1.Text;
string input = textBox2.Text;
if (input.StartsWith(pattern) == true)
{
textBox3.Text = "先頭が一致しました。";
}
else
{
textBox3.Text = "先頭は一致しませんでした。";
}
}
}
}
解説
テキストボックスの値をstring型の変数に代入します。
string pattern = textBox1.Text;
string input = textBox2.Text;
StartsWithメソッドを呼び出し、input変数の末尾を判定します。判定する文字列をStartsWithメソッドの引数に与えます。
一致している場合は「先頭が一致しました。」の文字列を下部のテキストボックスに表示し、一致していない場合は「先頭は一致しませんでした。」
の文字列を下部のテキストボックスに表示します。
private void button1_Click(object sender, EventArgs e)
{
string pattern = textBox1.Text;
string input = textBox2.Text;
if (input.StartsWith(pattern) == true)
{
textBox3.Text = "先頭が一致しました。";
}
else
{
textBox3.Text = "先頭は一致しませんでした。";
}
}
実行結果
プロジェクトを実行します。下図のウィンドウが表示されます。
判定文字列に "W" 入力文字列に "WhiteBear" を入力し[button1]をクリックします。
「先頭が一致しました。」の文字列が表示されます。"WhiteBear" の先頭の "W" の文字が一致ししているためです。
小文字の"w"を設定した場合には、一致しません。デフォルトでは大文字と小文字は別の文字として判定されます。
判定文字列に"Wh"を設定した場合には、一致します。"WhiteBear" の先頭2文字が一致しているためです。
入力文字列と判定文字列を同じ文字列 "WhiteBear" に設定した場合は一致する結果となります。
日本語(マルチバイト文字)の場合も先頭の文字が一致すれば一致となります。
参考:StringComparisonの値
StringComparisonには以下の値を指定できます。
値 | 数値の値 | 意味 |
CurrentCulture | 0 | カルチャに依存した並べ替え規則と、現在のカルチャを使用して、文字列を比較します。 |
CurrentCultureIgnoreCase | 1 | カルチャに依存した並べ替え規則と、現在のカルチャを使用し、比較対象の文字列の大文字と小文字の区別を無視して、文字列を比較します。 |
InvariantCulture | 2 | カルチャに依存した並べ替え規則と、インバリアント カルチャを使用して、文字列を比較します。 |
InvariantCultureIgnoreCase | 3 | カルチャに依存した並べ替え規則と、インバリアント カルチャを使用し、比較対象の文字列の大文字と小文字の区別を無視して、文字列を比較します。 |
Ordinal | 4 | 序数 (バイナリ) の並べ替え規則を使用して文字列を比較します。 |
OrdinalIgnoreCase | 5 | 序数 (バイナリ) の並べ替え規則を使用し、比較対象の文字列の大文字と小文字の区別を無視して、文字列を比較します。 |
著者
iPentecのメインプログラマー
C#, ASP.NET の開発がメイン、少し前まではDelphiを愛用