[解決済み] C# で各単語の最初の文字、または文字列全体の最初の文字を大文字にするにはどうすればよいですか?
2023-03-01 23:50:07
質問
独自のアルゴリズムを書くこともできますが、次のようなものが必要だと感じています。 ルビーのヒューマナイズ に相当するものがC#にあるはずです。
ググってみましたが、日付をヒューマナイズする方法しか見つかりませんでした。
例を挙げます。
- Lorem Lipsum Et" を "Lorem lipsum et" に変更する方法です。
- "Lorem lipsum et" を "Lorem Lipsum Et" に変換する方法。
どのように解決するのですか?
のコメントで述べられているように
@miguel さんの回答
を使用することができます。
TextInfo.ToTitleCase
これは.NET 1.1以降で利用可能です。以下は、あなたの例に対応するいくつかのコードです。
string lipsum1 = "Lorem lipsum et";
// Creates a TextInfo based on the "en-US" culture.
TextInfo textInfo = new CultureInfo("en-US",false).TextInfo;
// Changes a string to titlecase.
Console.WriteLine("\"{0}\" to titlecase: {1}",
lipsum1,
textInfo.ToTitleCase( lipsum1 ));
// Will output: "Lorem lipsum et" to titlecase: Lorem Lipsum Et
LOREM LIPSUM ET"のようにすべて大文字のものは無視されます。これは、頭字語がテキスト中にある場合、"IEEE" (Institute of Electrical and Electronics Engineers) が "iee" や "Ieee" にならないよう、大文字小文字の区別をしているからです。
しかし、最初の文字だけを大文字にしたい場合は、次のような解決策を取ることができます。 ここで ... あるいは、文字列を分割して、リストの最初のものを大文字にすることができます。
string lipsum2 = "Lorem Lipsum Et";
string lipsum2lower = textInfo.ToLower(lipsum2);
string[] lipsum2split = lipsum2lower.Split(' ');
bool first = true;
foreach (string s in lipsum2split)
{
if (first)
{
Console.Write("{0} ", textInfo.ToTitleCase(s));
first = false;
}
else
{
Console.Write("{0} ", s);
}
}
// Will output: Lorem lipsum et
関連
-
[解決済み】ASP.NET Core Dependency Injectionのエラーです。アクティブ化しようとしているときに、タイプのサービスを解決できません。
-
[解決済み】SmtpException: トランスポート接続からデータを読み取れません:net_io_connectionclosed
-
[解決済み] 文字列の単語を反復処理するにはどうすればよいですか?
-
[解決済み] ある文字列が特定の単語を含んでいるかどうかを確認するにはどうすればよいですか?
-
[解決済み] 複数の例外を一度にキャッチする?
-
[解決済み] 文字列が空かどうかを確認する方法は?
-
[解決済み] .NETでC#オブジェクトをJSON文字列に変換するには?
-
[解決済み] C#で文字を繰り返し表示する最適な方法
-
[解決済み】文字列中のある文字の出現回数をカウントする
-
[解決済み】文字列内の各単語の最初の文字を大文字にする方法
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] エンティティタイプ ApplicationUser は、現在のコンテキストのモデルの一部ではありません。
-
[解決済み】プログラム実行中に1秒待つ
-
[解決済み】C#におけるtypedefの等価性
-
[解決済み] DBNullから他の型にオブジェクトをキャストすることができない
-
[解決済み】リソースの読み込みに失敗した:ステータス500(内部サーバーエラー)のサーバーの応答)
-
[解決済み】EF 5 Enable-Migrations : アセンブリにコンテキストタイプが見つかりませんでした
-
[解決済み】MetadataException: 指定されたメタデータ・リソースをロードできない
-
[解決済み】IntPtrとは一体何なのか?
-
[解決済み】画像のペイントにTextureBrushを使用する方法
-
[解決済み] C#でHTML文字をデコードするには?