C#の文字列を操作するサンプルです。
目次
文字列を結合する(+演算子)
文字列を結合するサンプルです。
using System;
class Test1
{
static void Main()
{
// リテラル文字列を結合
Console.WriteLine("あ" + "い"); //あいと出力される
// 変数の値を結合
string a = "う";
string b = "え";
Console.WriteLine(a + b); //うえと出力される
}
}
7行目は、+演算子で文字列のリテラルを結合しています。
13行目は、+演算子で変数どうしを結合しています。
文字列を結合する(Concat)
文字列を結合するサンプルです。
using System;
class Test1
{
static void Main()
{
// 変数の値を結合
string a = "赤";
string b = "黄";
string c = "青";
Console.WriteLine(string.Concat(a, b)); //赤黄
Console.WriteLine(string.Concat(a, b, c)); //赤黄青
}
}
11行目は、Concatメソッドで文字列を結合しています。
12行目のように3つ以上の文字列の結合も可能です。
配列の値を区切り文字を指定して繋げる(Join)
配列の値を区切り文字を指定して繋げるサンプルです。
using System;
class Test1
{
static void Main()
{
var c1 = new string[] { "赤", "黄", "青" };
string a = String.Join("-", c1);
Console.WriteLine(a); // 赤-黄-青
}
}
9行目は、joinメソッドで配列の値を区切り文字をハイフン(-)にして文字列にしています。
文字列を追加する(Insert)
文字列を結合するサンプルです。
using System;
class Test1
{
static void Main()
{
var c1 = "赤黄青";
Console.WriteLine(c1.Insert(2, "オレンジ")); // 赤黄オレンジ青
}
}
9行目は、文字列を追加しています。最初の引数は追加する位置です。
位置は0から始まります。
文字を繰り返して作成する
文字を繰り返して作成するサンプルです。
using System;
class Test1
{
static void Main()
{
var c1 = new string('あ', 3);
Console.WriteLine(c1); // あああと出力される
var c2 = "";
for (int i = 0; i < 3; i++)
{
c2 += "い";
}
Console.WriteLine(c2); // いいいと出力される
}
}
7行目は、stringクラスのコンストラクタで1つめの引数の文字を2つめの引数の数だけ繰り返します。
11~14行目は、For文で文字を繰り返して表示しています。
頭ゼロを追加する(PadLeft)
頭ゼロを追加するサンプルです。
using System;
class Test1
{
static void Main()
{
string a = "9";
Console.WriteLine(a.PadLeft(3, '0')); // 009
Console.WriteLine(a.PadLeft(5, '0')); // 00009
string b = "90";
Console.WriteLine(b.PadLeft(3, '0')); // 090
Console.WriteLine(b.PadLeft(5, '0')); // 00090
}
}
PadLeftメソッドの1つめの引数は、桁数です。
指定した桁数内で、2つめの引数の値が頭に追加されます。
padは、詰め物という意味です。
指定した位置の文字を取得する(Substringメソッド)
指定した位置の文字を取得するサンプルです。
using System;
class Test1
{
static void Main()
{
string a = "あいうえお";
Console.WriteLine(a.Substring(0, 1)); // あと出力される
Console.WriteLine(a.Substring(1, 1)); // いと出力される
Console.WriteLine(a.Substring(2, 1)); // うと出力される
Console.WriteLine(a.Substring(0, 2)); // あいと出力される
Console.WriteLine(a.Substring(1, 2)); // いうと出力される
}
}
Substringメソッドの1つめの引数は、開始位置です。
2つめの引数は取得する文字数です。
最初の文字の位置は 0 です。
文字の位置を返す(IndexOfメソッド)
文字の位置を返すサンプルです。
using System;
class Test1
{
static void Main()
{
string a = "あいうabc";
Console.WriteLine(a.IndexOf("い")); // 1と出力される
Console.WriteLine(a.IndexOf("b")); // 4と出力される
Console.WriteLine(a.IndexOf("か")); // -1と出力される
}
}
8,9行目は、IndexOfメソッドで引数の文字の位置を返します。
最初の文字は、0から始まります。
10行目は、対象の文字列に指定の文字がありません。その場合は-1が返ります。
文字列の始めを確認する(StartsWithメソッド)
文字列の始めを確認するサンプルです。
using System;
class Test1
{
static void Main()
{
string a = "あいうabc";
Console.WriteLine(a.StartsWith("あいう")); //Trueと出力される
Console.WriteLine(a.StartsWith("あいえ")); //Falseと出力される
}
}
8行目は、StartsWithメソッドで「あいう」から始まる文字列か確認しています。Trueになります。
9行目は、文字列「あいえ」で始まっていないのでFalseになります。
文字列の終わりを確認する(EndsWithメソッド)
文字列の終わりを確認するサンプルです。
using System;
class Test1
{
static void Main()
{
string a = "あいうabc";
Console.WriteLine(a.EndsWith("abc")); //Trueと出力される
Console.WriteLine(a.EndsWith("abd")); //Falseと出力される
}
}
8行目は、EndsWithメソッドで「abc」で終わる文字列か確認しています。Trueになります。
9行目は、文字列「abd」で終わっていないのでFalseになります。
文字列の長さを取得する(Lengthプロパティ)
文字列の長さを取得するサンプルです。
using System;
class Test1
{
static void Main()
{
string a = "あいうabc";
Console.WriteLine(a.Length); //6と出力される
string b = "";
Console.WriteLine(b.Length); //0と出力される
}
}
8行目は、Lengthで文字列の長さを取得しています。
11行目のように空文字のときは0が返ります。
文字列がnullまたは空文字か確認する(IsNullOrEmptyメソッド)
文字列がnullまたは空文字か確認するサンプルです。
using System;
class Test1
{
static void Main()
{
string a = null;
string b = "";
if (string.IsNullOrEmpty(a))
{
Console.WriteLine("nullです"); //nullですと出力される
}
if (string.IsNullOrEmpty(b))
{
Console.WriteLine("空です"); //空ですと出力される
}
}
}
7行目は、変数にnullセットしています。
8行目は、空文字をセットしています。
10,14行目はそれぞれIsNullOrEmptyメソッドで判定しています。該当するのでTrueが返ります。
文字列を削除する(Remove)
文字列を削除するサンプルです。
using System;
class Test1
{
static void Main()
{
string a = "あいうえお";
Console.WriteLine(a.Remove(2, 1)); //あいえおと出力される
Console.WriteLine(a.Remove(2, 2)); //あいおと出力される
Console.WriteLine(a.Remove(2, 3)); //あいと出力される
}
}
9~11行目は、文字列の文字を削除しています。
1つ目の引数は開始の位置で、2つめの引数は削除する文字数です。
開始の位置は0から始まります。
文字列の先頭と末尾の空白を取り除く(Trimメソッド)
文字列の先頭と末尾の空白を取り除くサンプルです。
using System;
class Test1
{
static void Main()
{
string a = " ABCabc ";
Console.WriteLine(a.Trim()); //前後の半角空白を削除
Console.WriteLine(a.TrimStart()); //先頭の半角空白を削除
Console.WriteLine(a.TrimEnd()); //末尾の半角空白を削除
}
}
7行目は、文字列の前後に半角空白があります。
9行目は、Trimメソッドで文字列の前後の空白を削除しています。
10行目のTrimStartは先頭の半角空白を削除します。
11行目のTrimEndは末尾の半角空白を削除します。
文字列を置き換える(Replace)
文字列を置き換えるサンプルです。
using System;
class Test1
{
static void Main()
{
string a = "赤黄青";
Console.WriteLine(a.Replace("黄", "オレンジ"));//赤オレンジ青
}
}
9行目は、Replaceメソッドで値を指定して文字列を置き換えています。
文字列を分割して配列にする(Split)
文字列を分割して配列にするサンプルです。
using System;
class Test1
{
static void Main()
{
string a = "赤,黄,青";
string[] b = a.Split(',');
foreach (string c in b)
{
Console.WriteLine(c);// 赤 黄 青
}
}
}
8行目は、splitメソッドでカンマ区切りで値を配列にしています。
数値(int)を文字列にする(ToStringメソッド)
数値(int)を文字列にするサンプルです。
using System;
class Test1
{
static void Main()
{
int a = 12345;
if (a is int b)
{
Console.WriteLine("int"); // int
Console.WriteLine(b); // 12345
}
string c = a.ToString();
if (c is string d)
{
Console.WriteLine("string"); // string
Console.WriteLine(d); // 12345
}
}
}
isはデータ型を調べることができます。
8行目は、変数aがint型のとき、変数aの値が変数bに代入されます。
14行目は、ToStringメソッドで数値を文字列にしています。
15行目は、変数cがstring型のとき、変数cの値が変数dに代入されます。
文字列を数値(int)にする(Parseメソッド)
文字列を数値(int)にするサンプルです。
using System;
class Test1
{
static void Main()
{
string a = "12345";
if (a is string b)
{
Console.WriteLine("string"); // string
Console.WriteLine(b); // 12345
}
int c = int.Parse(a);
if (c is int d)
{
Console.WriteLine("int"); // int
Console.WriteLine(d); // 12345
}
}
}
isはデータ型を調べることができます。
8行目は、変数aがint型のとき、変数aの値が変数bに代入されます。
14行目は、ToStringメソッドで数値を文字列にしています。
15行目は、変数cがstring型のとき、変数cの値が変数dに代入されます。
英字の大文字と小文字を変換(ToUpper/ToLowerメソッド)
英字の大文字と小文字を変換するサンプルです。
using System;
class Test1
{
static void Main()
{
string a = "ABCabcあいう";
Console.WriteLine(a.ToUpper()); // ABCABCあいうと出力される
Console.WriteLine(a.ToLower()); // abcabcあいうと出力される
}
}
7行目は、英字の大文字と小文字と全角文字があります。
9行目は、ToUpperメソッドで英字の小文字を大文字にしています。全角文字は変わっていません。
10行目は、ToLowerメソッドで英字の大文字を小文字にしています。全角文字は変わっていません。
関連の記事