C#で文字列の各単語の先頭文字を大文字に変換する方法
C#では、文字列内の各単語の先頭文字だけを大文字に変換することができます。本記事では、ToCharArray()メソッドとchar型の演算を組み合わせて、文の中の各単語の最初の文字を大文字化するプログラムをわかりやすく解説します。
まず、次のような文字列を用意します。
String str = "Welcome to our website!";
手順1:文字列をchar配列に変換する
ToCharArray()メソッドを使用すると、文字列を1文字ずつ扱えるchar型の配列に変換できます。
char []ch = str.ToCharArray();
手順2:先頭文字を大文字に変換する
対象の文字が小文字('a'〜'z')であれば、'a'と'A'の文字コードの差分を利用して大文字へ変換できます。
if (ch[i] >= 'a' && ch[i] <= 'z') {
// 大文字に変換
ch[i] = (char)(ch[i] - 'a' + 'A');
}
サンプルコード
以下のコードを実行すると、文の中の各単語の先頭文字を大文字に変換できます。
using System;
class Demo {
static String MyApplication(String str) {
char []val = str.ToCharArray();
for (int i = 0; i < str.Length; i++) {
if (i == 0 && val[i] != ' ' ||
val[i] != ' ' && val[i - 1] == ' ') {
if (val[i] >= 'a' && val[i] <= 'z') {
val[i] = (char)(val[i] - 'a' + 'A');
}
} else if (val[i] >= 'A' && val[i] <= 'Z')
val[i] = (char)(val[i] + 'a' - 'A');
}
String s = new String(val);
return s;
}
public static void Main() {
String str = "Welcome to our website!";
Console.Write(MyApplication(str));
}
}
実行結果
Welcome To Our Website!
プログラムの解説
このプログラムの動作のポイントは以下の通りです。
- 単語の先頭の判定:ループの先頭(i == 0)、または直前の文字が半角スペースである場合、現在の文字は単語の先頭とみなされます。
- 大文字への変換:単語の先頭が小文字の場合、(char)(val[i] - 'a' + 'A')という計算により、文字コードを操作して大文字に変換します。
- それ以外の文字:単語の先頭以外に大文字が含まれていた場合は、逆に小文字へ変換されます。これにより、すべての単語が「先頭だけ大文字」の形式(タイトルケース)に統一されます。
- 文字列の再構築:変換後のchar配列からnew String(val)で新しい文字列を生成し、結果として返します。
補足:TextInfo.ToTitleCase()を使う方法
.NETには、タイトルケースへの変換をサポートする標準APIも用意されています。カルチャ情報を利用すれば、より簡潔に同じ処理を実現できます。
using System.Globalization;
string result = CultureInfo.CurrentCulture.TextInfo
.ToTitleCase("welcome to our website!".ToLower());
Console.WriteLine(result); // Welcome To Our Website!
なお、ToTitleCase()は「すべて小文字の単語」しか変換しないため、事前にToLower()を呼び出しておくのがポイントです。
-
C#で2進数を10進数に変換するプログラムの書き方
C#では、2進数(バイナリ)で表された数値を10進数(デシマル)へ変換することができます。本記事では、whileループと剰余演算を組み合わせた基本的な変換アルゴリズムを、サンプルコード付きでわかりやすく解説します。 2進数から10進数への変換の手順 1. 2進数の値を設定する まず、変換したい2進数の値を整数型の変数に設定します。ここでは例として「101」を使用します。 int num = 101; 2. 値を別の変数に保存する 元の値を後で表示できるよう、新しい変数に代入して保持しておきます。 binVal = num; 3. ループ処理で各桁を計算する 値が0より大きい間、以下のようにルー
-
整数を文字列に変換するC#プログラムの書き方
C#で整数(int型)を文字列(string型)に変換するには、ToString()メソッドを使用します。このメソッドは、すべての数値型が持つ標準的なメソッドで、呼び出すだけで簡単に文字列表現を取得できます。基本的な変換手順1. 変換したい整数を用意するまず、文字列に変換したい整数値を変数に格納します。int num = 299;2. ToString()メソッドで変換する次に、ToString()メソッドを呼び出して、整数を文字列に変換します。String s; int num = 299; s = num.ToString();完全なサンプルコード以下のコードを実行すると、整数を文字列に変