【C#】文字列の1文字だけ大文字 or 小文字にする

はじめに

こんにちは、バッテラです。

文字列全体を一括で大文字小文字に変換するにはstring.Replaceを使うとできましたが、

文字だけを変換したい場合はできなかったので、

調べて分かったことについて書いていきたいと思います。

環境

MacBook Pro (16-inch, 2019)

MacOS BigSur (11.4)

Visual Studio for Mac community (8.9.2)

N文字目を大文字に変換する方法

■流れ
1. stringをchar配列に変換する
2. 配列から1文字分のcharを取り出しToUpperで大文字に変える
3. その後char配列をstringに変換する

var str = "abc";

int index = 0;

// char[]に変換
var _chars = str.ToCharArray();

// charのToUpperで1文字だけを大文字にする
_chars[index] = char.ToUpper(_chars[index]);

// char[]をstringに変換
str = new string(_chars);

index はN文字目を指します。
1文字目は 0 を指定する必要があるので注意です

N文字目を小文字に変換する方法

大文字変換の時と同じ要領ですね。
char.ToLower を使う部分だけ変える形です。

var str = "ABC";

int index = 0;

// char[]に変換
var _chars = str.ToCharArray();

// charのToUpperで1文字だけを小文字にする
_chars[index] = char.ToLower(_chars[index]);

// char[]をstringに変換
str = new string(_chars);

参考にしたサイト様

takap-tech.com