-
Python樹林
Pythonのスライス構文:[start:stop:step] でリストを自在に切り出す
Pythonのリスト(list)は、複数のデータを順序付けて格納する強力なデータ型です。このリストから、[0] のように単一の要素を取り出すだけでなく、「1番目から3番目まで」のように、一部の要素をまとめて切り出して新しいリストを作成する機能があります... -
C#樹林
【C#】カルチャに依存しない文字列比較:StringComparison.Ordinal の重要性
文字列比較の落とし穴:「カルチャ」依存 C#で2つの文字列を比較する際、== 演算子や引数なしの Equals() メソッドを使うのが最も簡単です。 string input = "windows"; string constant = "WINDOWS"; bool isEqual = (input == constant); // false bool ... -
C#樹林
【C#】サロゲートペア・絵文字を正しく扱う:StringInfoで「テキスト要素」を操作する
string.Lengthが「正しくない」時 C#において、string型の.Lengthプロパティは、その文字列に含まれるchar(16ビット文字)の数を返します。また、foreach (char c in str)ループは、char単位で文字を処理します。 ほとんどの英数字や基本的な日本語では、... -
C#樹林
【C#】文字列とbyte配列の相互変換:Encoding (UTF-8) のGetBytes / GetString の使い方
なぜ文字列とbyte配列の変換が必要か? C#において、string型(文字列)は人間が読み書きするためのテキストデータ("Hello"など)を扱います。一方で、ファイルへの保存、ネットワークを通じたデータ送信、API連携、暗号化処理など、コンピュータがデータ... -
C#樹林
【C#】文字列と文字配列(char[])の相互変換:ToCharArrayとnew String
文字列と文字配列(char[]) C#において、string(文字列)型は「不変(Immutable)」です。つまり、一度作成された文字列オブジェクトの"ABC"という中身を、"ADC"のように一部分だけ変更することはできません。 一方で、char[](文字の配列)は「可変(Mu... -
C#樹林
【C#】string.Joinで配列やListの要素を区切り文字で連結する方法
コレクションから単一の文字列へ C#でプログラミングを行う際、string.Splitで文字列を配列に分割する操作とは逆に、配列やList<T>(リスト)など、複数の要素を持つコレクションを、指定した区切り文字(デリミタ)で連結し、一つのstring(文字列... -
C#樹林
【C#】文字列補間と逐語的リテラルの組み合わせ:$@構文でエスケープを無効化
$と@の併用 C#には、文字列を扱う上で非常に強力な2つの機能があります。 文字列補間($): $"Name: {userName}" のように、文字列内に {} を使って変数を直接埋め込む機能。 逐語的リテラル(@): @"C:\Folder" のように、文字列内の \(バックスラッシュ... -
C#樹林
【C#】StringBuilder.Replaceで効率的に文字列を置換する方法
string.Replace とパフォーマンスの課題 C#のstring.Replaceメソッドは、文字列の一部を置換するための簡単で便利な方法です。しかし、C#のstring型は「不変(Immutable)」であるため、Replaceを実行するたびに、内部では新しい文字列オブジェクトが生成... -
C#樹林
【C#】StringBuilder入門:大量の文字列を高速に連結する理由と使い方
+演算子による文字列連結の問題点 C#で文字列を連結する最も簡単な方法は + や += 演算子を使うことです。 string message = "User: "; message += "Admin"; // "User: Admin" この方法は、数回の連結であれば全く問題ありません。しかし、forやforeachと... -
C#樹林
【C#】string.Splitメソッドで文字列を分割する方法とオプション(RemoveEmptyEntries)
文字列の「分割」処理 C#でプログラミングを行う際、string型で受け取った一つの長いデータを、特定の「区切り文字(デリミタ)」に基づいて複数の部分文字列に分割し、配列として扱いたい場面が非常に多くあります。 代表的な例としては、CSV(カンマ区切... -
C#樹林
【C#】PadLeftとPadRight:文字列の桁数を揃える(パディング)方法
文字列の「パディング(桁揃え)」とは C#でコンソール出力やテキストファイル、レポートなどを作成する際、数値を文字列に変換しただけでは、"ID: 1"、"ID: 150"、"ID: 99"のように、文字列の長さがバラバラになってしまい、見た目が揃わず読みにくくなり... -
C#樹林
【C#】文字列を1文字ずつ処理する方法:foreachループの活用
文字列内の各文字へのアクセス C#で文字列を扱う際、文字列全体としてではなく、その文字列を構成する「1文字ずつ」にアクセスして処理を行いたい場合があります。例えば、特定の文字(例: '-')がいくつ含まれているか数えたり、文字列内の数字だけを抽出... -
C#樹林
【C#】文字列を大文字・小文字に変換:ToUpperとToLowerの使い方とカルチャ依存(InvariantCulture)の注意点
文字列のケース(大文字・小文字)変換 C#で文字列を扱う際、データの一貫性を保つために、大文字と小文字を統一したい場面がよくあります。例えば、ユーザー入力された "Yes"、"yes"、"YES" をすべて同じ "yes" として扱ったり、辞書のキーやデータベース... -
C#樹林
【C#】string.Insertメソッドで文字列の指定位置にテキストを挿入する方法
文字列への「挿入」処理 C#で文字列を構築する際、既存の文字列(例: "File.log")の特定の位置(例: . の直前)に、別の文字列(例: "_backup")を差し込みたい場合があります。 +演算子やstring.Format、Substringを組み合わせてこの操作を行うことも可... -
C#樹林
【C#】string.Replaceで文字列を置換する方法(大文字・小文字の区別も解説)
文字列の「置換」処理 C#で文字列データを扱う際、特定の単語や記号を、別のものに一括で置き換えたいというニーズは頻繁に発生します。例えば、ログレベルの変更("DEBUG"を"INFO"に)や、古いAPIのエンドポイント名を新しいものに修正する、あるいは単に... -
C#樹林
【C#】string.Removeメソッドで文字列の一部(指定範囲)を削除する方法
文字列の部分的な削除 C#で文字列を処理していると、「ログからタイムスタンプの部分だけを削除したい」や、「"Data:" というプレフィックス(接頭辞)を取り除きたい」など、文字列の特定の部分だけを削除して、残りの部分を取得したい場合があります。 s... -
C#樹林
【C#】Substringメソッドで文字列の一部を抽出(切り出し)する方法
文字列の部分抽出(Substring) C#で文字列データを扱う際、長い文字列(例: ログデータ、URL、CSVの1行)から、必要な一部分だけを切り出して(抽出して)使用したいケースは非常に多くあります。 例えば、"UserID=1001"という文字列から"1001"の部分だけ... -
C#樹林
【C#】文字列の検索:IndexOfで部分文字列が最初に現れる位置(インデックス)を調べる
文字列内の「位置」を検索する C#で文字列を操作する際、「この文字列にキーワードが含まれているか(Contains)」だけでなく、「そのキーワードがどの位置(インデックス)から始まっているか」を知りたい場合があります。 例えば、"ERROR: 接続がタイム... -
C#樹林
【C#】文字列の空白を除去するTrim, TrimStart, TrimEndの正しい使い方
文字列前後の「空白」問題 ユーザー入力、ファイル読み込み、APIレスポンスなど、外部から取得した文字列データには、意図しない空白文字(スペース、タブ、改行など)が先頭や末尾に含まれていることがよくあります。 例: " Data Received \r\n" これらの... -
Python樹林
Pythonリストの要素参照:インデックス([0])と負のインデックス([-1])の使い方
Pythonのリスト(list)は、複数のデータを「順序付けて」格納するデータ型です。この「順序」を利用して、リスト内の特定の要素を1つだけ正確に取り出す操作が「インデックス参照」です。 インデックスとは、リストの各要素に自動的に割り当てられる「住... -
Python樹林
Pythonのリスト(list)作成:[] と list() の基本的な使い方
Pythonにおける**リスト(list)**は、複数のデータを順序付けて格納できる、非常に強力で柔軟なデータ型です。リストに格納された各データ(要素)は、後から変更、追加、削除が可能です(ミュータブル)。 数値の集まり、ユーザー名の集まり、あるいは異... -
Python樹林
Pythonのlen()関数:文字列の文字数をカウントする方法
Pythonで文字列を扱う際、その「長さ(含まれる文字数)」を知りたい場面は非常に多いです。例えば、パスワードが規定の文字数(8文字以上など)を満たしているか、またはユーザー名が最大文字数(20文字以内など)を超えていないかをチェックする場合など... -
Python樹林
PythonのRaw文字列(r”…”):バックスラッシュのエスケープを無効化する方法
Pythonで文字列を扱う際、バックスラッシュ(\、Windows環境では ¥ と表示されることもあります)は、「エスケープシーケンス」という特殊な意味を持ちます。\n は改行、\t はタブとして解釈されます。 この機能は便利ですが、Windowsのファイルパス(C:\U... -
Python樹林
Pythonの文字列連結:+演算子、f-string、join()の使い方
Pythonでは、複数の文字列を結合して一つの新しい文字列を作成する操作(文字列連結)が頻繁に必要になります。例えば、姓と名を結合して氏名を作成したり、ログメッセージを組み立てたりする場合です。 文字列を連結するには、+ 演算子、f-string、join()... -
Python樹林
Pythonのエスケープシーケンス:\n(改行)や \t(タブ)、\(バックスラッシュ)の使い方
Pythonでは、文字列をシングルクォート(')またはダブルクォート(")で囲みます。しかし、文字列の中に「It's」のようにクォート自体を含めたい場合や、改行やタブといった特殊な制御文字を入れたい場合があります。 そのまま記述すると構文エラー(Synt... -
Python樹林
Pythonの文字列(str)型:基本、クォート、複数行の扱い方
Pythonにおいて、**文字列(str)**はプログラムで最もよく使われるデータ型の一つです。「こんにちは」といった挨拶や、ユーザーID、ファイル名、エラーメッセージなど、テキストデータを扱うために使用されます。 文字列は「文字のシーケンス(順序付け... -
Python樹林
Pythonで無限大(inf)と非数(nan)を扱う方法:float と math モジュール
Pythonの数値型 float(浮動小数点数)は、3.14 や -0.5 といった通常の数値に加え、「無限大」や「非数 (Not a Number)」といった特殊な状態を表現できます。 これらは、数学的な計算(ゼロ除算の試み)や、データ分析における欠損値の処理などで利用され... -
Python樹林
Pythonの浮動小数点数(float)型:基本、指数表記、そして計算誤差の注意点
Pythonで数値を扱う際、10 や -5 のような整数(int)の他に、3.14 や 0.5 のような小数点を含む数値を扱う必要があります。これらを**浮動小数点数型(float)**と呼びます。 float は、科学技術計算、統計、あるいは単に割り算の結果を表すためなど、プ... -
Python樹林
Pythonのブール演算子:and, or, not の使い方と短絡評価
Pythonで if 文などの条件分岐を扱う際、複数の条件を組み合わせたい場合があります。例えば、「ユーザーが認証済み かつ 管理者である」や「処理が失敗した または タイムアウトした」といった複雑な判定です。 これを実現するのが、True と False のブー... -
Python樹林
Pythonの連鎖比較演算子: a < b < c のような書き方を解説
Pythonでプログラムを書く際、「ある値が特定の範囲内にあるか」を判定したいことがよくあります。例えば、「スコアが80点以上、かつ100点未満」といった条件です。 多くのプログラミング言語では、これを and 演算子を使って (80 <= score) and (score...