atwiki-logo
  • 新規作成
    • 新規ページ作成
    • 新規ページ作成(その他)
      • このページをコピーして新規ページ作成
      • このウィキ内の別ページをコピーして新規ページ作成
      • このページの子ページを作成
    • 新規ウィキ作成
  • 編集
    • ページ編集
    • ページ編集(簡易版)
    • ページ名変更
    • メニュー非表示でページ編集
    • ページの閲覧/編集権限変更
    • ページの編集モード変更
    • このページにファイルをアップロード
    • メニューを編集
    • 右メニューを編集
  • バージョン管理
    • 最新版変更点(差分)
    • 編集履歴(バックアップ)
    • アップロードファイル履歴
    • ページ操作履歴
  • ページ一覧
    • ページ一覧
    • このウィキのタグ一覧
    • このウィキのタグ(更新順)
    • このページの全コメント一覧
    • このウィキの全コメント一覧
    • おまかせページ移動
  • RSS
    • このウィキの更新情報RSS
    • このウィキ新着ページRSS
  • ヘルプ
    • ご利用ガイド
    • Wiki初心者向けガイド(基本操作)
    • このウィキの管理者に連絡
    • 運営会社に連絡(不具合、障害など)
ページ検索 メニュー
プログラミング図書館・本館
  • ウィキ募集バナー
  • 目安箱バナー
  • 操作ガイド
  • 新規作成
  • 編集する
  • 全ページ一覧
  • 登録/ログイン
ページ一覧
プログラミング図書館・本館
  • ウィキ募集バナー
  • 目安箱バナー
  • 操作ガイド
  • 新規作成
  • 編集する
  • 全ページ一覧
  • 登録/ログイン
ページ一覧
プログラミング図書館・本館
ページ検索 メニュー
  • 新規作成
  • 編集する
  • 登録/ログイン
  • 管理メニュー
管理メニュー
  • 新規作成
    • 新規ページ作成
    • 新規ページ作成(その他)
      • このページをコピーして新規ページ作成
      • このウィキ内の別ページをコピーして新規ページ作成
      • このページの子ページを作成
    • 新規ウィキ作成
  • 編集
    • ページ編集
    • ページ編集(簡易版)
    • ページ名変更
    • メニュー非表示でページ編集
    • ページの閲覧/編集権限変更
    • ページの編集モード変更
    • このページにファイルをアップロード
    • メニューを編集
    • 右メニューを編集
  • バージョン管理
    • 最新版変更点(差分)
    • 編集履歴(バックアップ)
    • アップロードファイル履歴
    • ページ操作履歴
  • ページ一覧
    • このウィキの全ページ一覧
    • このウィキのタグ一覧
    • このウィキのタグ一覧(更新順)
    • このページの全コメント一覧
    • このウィキの全コメント一覧
    • おまかせページ移動
  • RSS
    • このwikiの更新情報RSS
    • このwikiの新着ページRSS
  • ヘルプ
    • ご利用ガイド
    • Wiki初心者向けガイド(基本操作)
    • このウィキの管理者に連絡
    • 運営会社に連絡する(不具合、障害など)
  • atwiki
  • プログラミング図書館・本館
  • .NET
  • 文字列

文字列

最終更新:2011年06月25日 13:02

atachi

- view
管理者のみ編集可
  • string型 [#s46bd48d]
  • 文字の操作方法一覧 [#p3fecd9a]
  • 文字列の等価比較 [#vd94d25e]
  • 正規表現
  • 対象がスカラー値の場合の書式指定記法 [#i429a806]
  • 対象が日時の場合の書式指定記法 [#u2a0f385]

string型

C#では文字列の扱いはすべてstring型で扱う。
stringはSystem::Stringクラスなので、文字列に関する多くの操作はStringクラスが実装している。

内部はユニコードである。

文字の操作方法一覧

操作 呼び出しサンプル 説明
文字列の長さ s.Length Lengthプロパティを使用する。
"文字".Length 拡張メソッドによってリテラルからStringクラスのメソッドを呼び出せる。
結合 "abc" + "ABC" 文字列結合演算子
大文字化 s.ToUpper()
小文字化 s.ToLower()
文字分割 s.split('/') 戻り値はstring型の配列
部分文字列 s.Substring(5,10) 指定した位置の文字を取得。
例の場合、5文字目から10文字分の文字列を返す。
トリム s.Trim()
s.TrimStart() 文字列の先頭にある空白をトリミングする。
s.TrimEnd() 文字列の末尾にある空白をトリミングする。
等価比較 s == "文字列"
s.Equals("文字列") 激しく非推奨 (下記参照)
不等価比較 s != "文字列"
大小比較
先頭比較 s.StartWith("My") 文字列が先頭の文字にマッチするか。
末尾比較 s.EndWith("Test") 文字列が最後の文字にマッチするか。
空文字判定
文字検索 s.IndexOf("Program") 文字列にマッチした最初の位置を返す
置き換え s.Replace("Before","After") 置換処理後の文字列を返す
左寄せ(右埋め) s.PadLeft(10) 指定した文字数になるように空白で右側(左側)を埋めた文字列を返す
右寄せ(左埋め) s.PadRight(10)

文字列の等価比較

文字列はstring型(または、ボックス化によりString型)であるため、等価比較を行うにあたって2つの方法が存在する。

  • ==演算子による方法
  • Object.Equals()による方法

string型はイミュータブルなので、==演算子を使用できる。

Object.Equals()でも等価比較が可能だが、ボックス化によるパフォーマンス低下とタイプセーフではないという実装上のデメリットが生じる。
特に、タイプセーフでないために対象がObject型ならば何でもEquals()に与えることができてしまうため、文字列以外の型を与えた場合に必ずしも等価でないケースが存在してしまう。

int i = 0;
string s = "0";
 
Console.WriteLine( s == i ); // コンパイルエラー(異なる型を==演算子で比較できない)
Console.WriteLine( s == i.ToString() ); // 明示的にiを文字列へ。 結果はTrue
 
Console.WriteLine( s.Equals(i) ); // False

Javaとは動作が決定的に異なるので、Java経験者は注意が必要です。

正規表現

System.Text.RegularExpressions.Regexを使用する。

static void Main()
  {
    string s =
@"
This is a test program.
you can download it from the following page.
http://www.xxx.yyy/bin/test.exe
If you have any questions about this,
please contact us by sending e-mail to the following address.
support@xxx.yyy
";
 
    // メールアドレス抽出
	Regex email = new Regex(@"\w*@[\w\.]*");
	Console.Write("{0}\n", email.Match(s).Value);

正規表現が複数にマッチした場合は次のようにする。

Match m = null;
for(m = reg.Match(s);m.Success;m = m.NextMatch()) {
	Console.Write("{0}\n", m.Value);
}
  • MSDN 正規表現言語要素

対象がスカラー値の場合の書式指定記法

置き換える文字と引数の順番が対応している。{0}は1番目の引数で置き換える。

書式 説明 指定例 表示例
d 数値を表示 {0:d} 1234
dn 任意の桁数で表示。
桁が足りない場合は「0」で埋まる
{0:d4} 0123
c 数値を通貨書式で表示 {0:c} \5,120
n 「,」区切り {0:n} 5,120
x 16進数で表示 {0:x} 4e0c
g 小数点表示 {0:g} 0.1575
f 小数点部の桁固定で表示
デフォルトでは2桁
{0:f} 0.15
fn 小数点部の桁固定数を指定 {0:f5} 178.12466
e 指数形式で表示 {0:e} 1.575e-002
p パーセンテージで表示 {0:p} 15%
数値 桁指定。整数部と小数部は「.」で区切る。 {0:000.000} 057.120
0 数値の表示位置。
例の書式で「123456789」という値を与えた場合は表示例のようになる。
{0:(000)-000-0000} (012)-345-6789

対象が日時の場合の書式指定記法

書式対象のデータ型がDateTimeの場合、書式指定の意味合いが異なるものがあります。

年の指定
y 年。2桁表記。0~99
yy 年。常に2桁での出力。00~99
yyy 年。常に3桁での出力。
yyyy 年。常に4桁での出力。
yyyyy 年。常に5桁での出力。
月の指定
M 月。1~12
MM 月。常に2桁での出力。01~12
MMM 月の省略名で出力
MMMM
日付の指定
d 日付。1~31
dd 日付。常に2桁での出力。01~31
ddd
dddd
時間の指定
h 12時間表記。0~12
hh 12時間表記。常に2桁での出力。00~12
H 24時間表記。0~23
HH 24時間表記。常に2桁での出力。00~23
tt 午前・午後の表示。日本語ロケールの場合は「午前/午後」と表示される。英語の場合は「AM/PM」となる。
分の指定
m 分。0~59
mm 分。常に2桁での出力。00~59
秒の指定
s 秒。0~59
ss 秒。常に2桁での出力。00~59
「文字列」をウィキ内検索
LINE
シェア
Tweet

[Amazon商品]


プログラミング図書館・本館
記事メニュー

C#

  • 新機能
  • 言語文法
    • 型
    • 関数
    • クラス
    • 演算子
    • 構文
    • デリゲート
    • イベント
    • 例外処理
    • アトリビュート
    • 名前空間
    • ジェネリクス
  • リフレクション
  • LINQ

.NET Frameworks

  • 数値
  • 文字列
  • 日付時刻
  • オブジェクト
  • コレクション
  • ファイルシステム
  • スレッド
  • データテーブル
  • グラフィックス
  • デバッグ
    • ログ出力
    • ユニットテスト
  • ユーティリティ
  • ネットワーク
    • HTTP
  • デバイス
    • COMポート
  • EntityFrameworks
    • Code First Programming Model
  • デバイスドライバ
    • WinUSB

WPF

  • XAML
  • イベント
  • コマンド
  • スタイル
  • データバインディング
  • コンポーネント
  • グラフィックス
  • カスタムコンポーネント
    • 依存関係プロパティ

アプリケーション

  • 二重起動の防止
  • アンマネージドDLLの読み込み
  • 外部のアプリケーションを起動

VisualStudio

  • 拡張機能
  • カラー設定

ライブラリ

  • WPFToolkit
  • A Fast CSV Reader
  • AvalonDock

実装方法

  • ドラッグアンドドロップ
  • アプリケーション内のドラッグアンドドロップ
  • CSVからDataTable

minecraft

  • Bukkit
  • プラグイン
    • Permissions
    • SlowHealth
    • CookieMonster
    • iConomy
    • WorldGuard
    • Lockette
    • MyHome
    • BorderGuard

サイトについて

プロフィール/リンク/未分類

メモ/ゲーム/Stacks/Omoikane


更新履歴

取得中です。

ここを編集

記事メニュー2

読んでいる本


Effective C#

QLOOKアクセス解析

ここを編集

人気記事ランキング
  1. 構文
もっと見る
最近更新されたページ
  • 5033日前

    Bukkit
  • 5040日前

    トップページ
  • 5060日前

    メニュー
  • 5071日前

    WPF/グラフィックス
  • 5071日前

    .NET/グラフィックス
  • 5071日前

    .NET/グラフィックス/画像の書き込み
  • 5071日前

    .NET/グラフィックス/画像の読み込み
  • 5076日前

    .NET/コレクション
  • 5094日前

    .NET/WinUSB
  • 5129日前

    BorderGuardプラグイン
もっと見る
人気記事ランキング
  1. 構文
もっと見る
最近更新されたページ
  • 5033日前

    Bukkit
  • 5040日前

    トップページ
  • 5060日前

    メニュー
  • 5071日前

    WPF/グラフィックス
  • 5071日前

    .NET/グラフィックス
  • 5071日前

    .NET/グラフィックス/画像の書き込み
  • 5071日前

    .NET/グラフィックス/画像の読み込み
  • 5076日前

    .NET/コレクション
  • 5094日前

    .NET/WinUSB
  • 5129日前

    BorderGuardプラグイン
もっと見る
ウィキ募集バナー
新規Wikiランキング

最近作成されたWikiのアクセスランキングです。見るだけでなく加筆してみよう!

  1. 機動戦士ガンダム EXTREME VS.2 INFINITEBOOST wiki
  2. MadTown GTA (Beta) まとめウィキ
  3. R.E.P.O. 日本語解説Wiki
  4. シュガードール情報まとめウィキ
  5. ソードランページ @ 非公式wiki
  6. AviUtl2のWiki
  7. Dark War Survival攻略
  8. シミュグラ2Wiki(Simulation Of Grand2)GTARP
  9. 星飼いの詩@ ウィキ
  10. ヒカマーWiki
もっと見る
人気Wikiランキング

atwikiでよく見られているWikiのランキングです。新しい情報を発見してみよう!

  1. アニヲタWiki(仮)
  2. ストグラ まとめ @ウィキ
  3. 機動戦士ガンダム EXTREME VS.2 INFINITEBOOST wiki
  4. ゲームカタログ@Wiki ~名作からクソゲーまで~
  5. 初音ミク Wiki
  6. 発車メロディーwiki
  7. 検索してはいけない言葉 @ ウィキ
  8. Grand Theft Auto V(グランドセフトオート5)GTA5 & GTAオンライン 情報・攻略wiki
  9. 機動戦士ガンダム バトルオペレーション2攻略Wiki 3rd Season
  10. モンスター烈伝オレカバトル2@wiki
もっと見る
全体ページランキング

最近アクセスの多かったページランキングです。話題のページを見に行こう!

  1. 参加者一覧 - ストグラ まとめ @ウィキ
  2. 魔獣トゲイラ - バトルロイヤルR+α ファンフィクション(二次創作など)総合wiki
  3. 鬼レンチャン(レベル順) - 鬼レンチャンWiki
  4. 機体一覧 - 機動戦士ガンダム EXTREME VS.2 INFINITEBOOST wiki
  5. ドンキーコング バナンザ - アニヲタWiki(仮)
  6. チンポ画像収集場 - 検索してはいけない言葉 @ ウィキ
  7. 仕込みマシンガン/仕込み爆弾(遊戯王OCG) - アニヲタWiki(仮)
  8. ヤマダ電機の唄 - アニヲタWiki(仮)
  9. 危険度7 - 検索してはいけない言葉 @ ウィキ
  10. 千鳥の鬼レンチャン 挑戦者一覧 - 千鳥の鬼レンチャン サビだけカラオケデータベース
もっと見る

  • このWikiのTOPへ
  • 全ページ一覧
  • アットウィキTOP
  • 利用規約
  • プライバシーポリシー

2019 AtWiki, Inc.