【C#エクセル】文字列を 比較・判定・検索・抽出・変換・連結・分割
当ページのリンクには広告が含まれています。
C#での文字列操作をまとめます
クリックしてジャンプ
比較:大文字 小文字 区別無し
using System;
using System.Globalization;
private void 文字列比較_大文字小文字区別無し() {
var st1 = "EXCEL"; // 大文字の文字列
var st2 = "excel"; // 小文字の文字列
if (String.Compare(st1,st2,ignoreCase:true) == 0) {
// 文字列が一致した場合
}
}
比較:ひらがな カタカナ 区別無し
using System;
using System.Globalization;
private void 文字列比較_ひらがなカタカナ区別無し() {
var st1 = "エクセル"; // カタカナの文字列
var st2 = "えくせる"; // ひらがなの文字列
var cultureInfo = new CultureInfo("ja-JP");
if (String.Compare(st1, st2, cultureInfo, CompareOptions.IgnoreKanaType) == 0) {
// 文字列が一致した場合
}
}
比較:全角 半角 区別無し
using System;
using System.Globalization;
private void 文字列比較_全角半角区別無し() {
var st1 = "エクセル"; // 半角の文字列
var st2 = "エクセル"; // 全角の文字列
var cultureInfo = new CultureInfo("ja-JP");
if (String.Compare(st1, st2, cultureInfo, CompareOptions.IgnoreWidth) == 0) {
// 文字列が一致した場合
}
}
判定:「null」か「空文字」か
using System;
private void 文字列判定_nullか空文字() {
var st = "";
if (string.IsNullOrEmpty(st)) {
// 文字列が null か 空文字 の場合
// 空白文字列(" ")は含まない
}
}
判定:「null」か「空文字」か「空白文字列」か
using System;
private void 文字列判定_nullか空文字か空白文字列か() {
var st = " ";
if (string.IsNullOrWhiteSpace(st)){
// 文字列が null か 空文字 か 空白文字列(" ")の場合
}
}
判定:指定した文字列で 始まって いる
using System;
private void 文字列判定_指定した文字列で始まっている() {
var st = "エクセル";
if (st.StartsWith("エク")) {
// 指定文字列で始まってる場合
}
}
判定:指定した文字列で 終わって いる
using System;
private void 文字列判定_指定した文字列で終わっている() {
var st = "エクセル";
if (st.EndsWith("セル")) {
// 指定文字列で終わっている場合
}
}
判定:指定した文字列が 含まれて いる
using System;
private void 文字列判定_指定した文字列が含まれている() {
var st = "エクセル";
if (st.Contains("クセ")) {
// 指定文字列が含まれている場合
}
}
検索抽出:指定した文字列の位置を調べる
using System;
private void 文字列判定_指定した文字列の位置() {
var st = "エクセル";
var index = st.IndexOf("セル");
// ↑index には「 2 」が入る
// 文字列が存在しない場合は「 -1 」が入る
// 検索条件が「""」の場合は「 0 」が入る
// IndexOf メソッド:引数で指定した文字列が最初に見つかった位置(0から始まる)を返す
// SubString / Remove / Insert のような 引数に インデックスを使う メソッドに利用する
}
検索抽出:文字列の一部を取り出す
using System;
private void 文字列検索抽出_文字列の一部を取り出す() {
var st = "エクセル=えくせる;EXCEL=excel";
var target = "エクセル=";
var startIndex = st.IndexOf(target) + target.Length;
// ↑の場合 startIndex には「 5(0 + 5) 」が入る
var endIndex = st.IndexOf(";",startIndex); // 検索は startIndex の位置から開始される
// ↑の場合 endIndex には「 9 」が入る
var output = st.Substring(startIndex,endIndex - startIndex);
// ↑ output には "えくせる" が入る
// SubString メソッド:指定した位置から、指定した位置まで を取り出す
}
変換:前後の空白を消す
using System;
private void 文字列変換_前後の空白を消す() {
var target = " エクセル ";
var replaced = target.Trim();
// replaced には "エクセル" が入る
}
変換:別の文字を挿入
using System;
private void 文字列変換_別の文字を挿入() {
var target = "エル";
var replaced = target.Insert(1,"クセ");
// replaced には "エクセル" が入る
}
変換:別の文字に置換
using System;
private void 文字列変換_別の文字に置き換え() {
var target = "エグザイル";
var replaced = target.Replace("グザイ","クセ");
// replaced には "エクセル" が入る
}
変換:小文字 を 大文字
using System;
private void 文字列変換_小文字を大文字() {
var target = "excel";
var replaced = target.ToUpper();
// replaced には "EXCEL" が入る
}
変換:大文字 を 小文字
using System;
private void 文字列変換_大文字を小文字() {
var target = "EXCEL";
var replaced = target.ToLower();
// replaced には "excel" が入る
}
連結分割:指定した文字で 連結
using System;
private void 文字列連結分割_指定した文字で連結() {
var words = new[] { "エクセル","えくせる","EXCEL","excel" };
var text = String.Join("★", words);
// text には "エクセル★えくせる★EXCL★excel" が入る
}
連結分割:指定した文字で 分割
using System;
private void 文字列連結分割_指定した文字で分割() {
var text = "エクセル★えくせる★EXCEL★excel";
string[] words = text.Split('★');
// words[] には [エクセル, えくせる, EXCEL, excel] が入る
}