スライドショースライドショー

【C#入門】Stringクラスで文字列操作総まとめ

Stringクラスって使ってますか?

文字列の分割・結合や比較、検索など文字列を扱う場合に使用すると便利です。この記事では、Stringクラスについて

  • Stringクラスとは
  • Stringとstringの違いについて
  • StringBuilderクラスとは
  • 文字列を分割・結合する方法
  • 文字列を比較する方法
  • 文字列が含まれているか判定する方法
  • Substringで文字列の一部分を取得する方法
  • 削除する方法
  • nullや空文字か判定する方法
  • Replaceで置換する方法
  • 変換する方法

など基本的な内容から、応用的な使い方の内容についても解説していきます。今回はStringクラスについて、使い方をわかりやすく解説します!

Stringクラスとは

c#には文字列を扱うStringクラスが用意されています。文字列の分割・結合や比較、検索など文字列を扱うメソッドを使うことができます。この記事では主なメソッドの使い方についてまとめています。

Stringとstringの違いについて

c#では頭文字が大文字で始まるString小文字で始まるstringがあります。例えばStringクラスのメソッドを呼び出す場合は大文字で始まるStringを使います。文字列の変数を宣言する場合には小文字で始まるstringで型を指定します。

ただ、Stringクラスのメソッドを呼び出す場合に小文字で始まるstringを使っても問題ありません。文字列の変数を宣言する場合に大文字で始まるStringを使っても型を指定することもできます。これは小文字で始まるstringはStringクラスのエイリアス(別名)だからです。

StringBuilderクラスとは

c#にはStringBuilderクラスもあります。StringBuilderクラスを使うと、高速に文字列を追加、挿入したり削除、置換することができます。次のサンプルはStringBuilderクラスのAppendメソッドを使って末尾に文字列を追加する例です。

using System;
using System.Text;
 
namespace Sample
{
  class Sample
  {
    static void Main()
    {
      StringBuilder sb = new StringBuilder("侍");
      Console.WriteLine(sb.Append("エンジニア塾"));
      
      Console.ReadKey();
    }
  }
}

実行結果:

侍エンジニア塾

このサンプルコードでは、StringBuilderクラスのオブジェクトsbからAppendメソッドを呼び出し、文字列を結合しています。StringBuilderクラスには、Appendメソッド以外にもAppendFormat、Insert、Remove、Replaceメソッドなどが用意されています。

詳しくはこちらで詳しく解説していますので、ぜひ参考にしてください。

【C#入門】StringBuilderクラスで文字列を追加、挿入、削除、置換
更新日 : 2019年4月17日

文字列を分割・結合する方法

文字列を分割・結合するにはStringクラスのSplitメソッドやJoinメソッドを使います。

Splitで分割する方法

文字列を分割するにはStringクラスのSplitメソッドを使います。文字列中に含まれるスペースで文字列を分割する方法についてみていきましょう。

using System;
 
namespace Sample
{
  class Sample
  {
    static void Main()
    {
      string str = "侍 エンジニア 塾";
      
      string[] arr =  str.Split(' ');
      Console.WriteLine("{0}", string.Join(", ", arr));
      
      Console.ReadKey();
    }
  }
}

実行結果:

侍, エンジニア, 塾

Splitメソッドではスペース以外にも、カンマや改行コード、指定文字列で文字列を分割することができます。詳しくはこちらで詳しく解説していますので、ぜひ参考にしてください。

【C#入門】String.Splitで文字列を分割(複数文字、文字数でも分割)
更新日 : 2019年4月23日

Joinで文字列の配列要素を結合する方法

文字列の配列要素を結合するにはJoinメソッドを使います。Joinメソッドを使い方について、サンプルコードで確認しましょう。

using System;
using System.Linq;
 
namespace ArrayCopy
{
  class ArrayCopy
  {
    static void Main()
    {
      char[] src = {'a', 'b', 'c'};
      
      Console.WriteLine("{0}", string.Join("/", src));
      Console.ReadKey();
    }
  }
}

実行結果:

a/b/c

サンプルコードでは、Joinメソッドを使って、区切り文字列に”/”を指定して配列srcの要素を結合しています。配列要素の結合については、こちらで詳しく解説していますので、ぜひ参考にしてください。

【C#入門】配列を結合する方法(文字列要素の連結、処理速度も解説)
更新日 : 2018年11月27日

文字列を比較する方法

文字列の比較には並び替え順位を比較する方法文字列同士が等しいか比較する方法の2種類があります。

Compareで並び替え順位を比較する方法

並び替え順位を比較する場合にはCompareメソッドを使います。Compareメソッドの使い方については、サンプルコードで確認しましょう。

using System;
 
namespace Sample
{
  class Sample
  {
    static void Main()
    {
      string strA = "Osaka";
      string strB = "Tokyo";
      string strC = "Nagoya";
      
      Console.WriteLine(string.Compare(strA, strB));
      Console.WriteLine(string.Compare(strA, strC));
      
      Console.ReadKey();
    }
  }
}

実行結果:

-1
1

このサンプルコードでは、まず文字列strAとstrBの並び順を比較しています。strA(Osaka)はstrB(Tokyo)の前ですので、負の値を返しています。

次に文字列strAとstrCの並び順を比較しています。strA(Osaka)はstrC(Nagoya)の後ろですので、正の値を返しています。Compareメソッドの使い方については、こちらで詳しく解説していますので、ぜひ参考にしてください。

【C#入門】Compareで文字列を比較(大文字と小文字などの無視も解説)
更新日 : 2018年4月10日

Equalsで文字列同士が等しいか比較する方法

文字列同士が等しいか比較する場合にはEqualsを使います。Equalsメソッドの使い方についてもサンプルコードで確認しましょう。

using System;
 
namespace Sample
{
  class Sample
  {
    static void Main()
    {
      string strA = "ABCDE";
      string strB = "ABCDE";
      
      if(strA.Equals(strB)) {
        Console.WriteLine("strAとstrBは同じです");  
      } else {
        Console.WriteLine("strAとstrBは違います");
      }
      
      Console.ReadKey();
    }
  }
}

実行結果:

strAとstrBは同じです

CompareメソッドとEqualsメソッドの使い方については、こちらで詳しく解説しています。ぜひ参考にしてください。

【C#入門】文字列を比較する方法 総まとめ (Compare/Equals/==演算子)
更新日 : 2019年4月2日

==演算子で文字列が等しいかを比較する方法

==演算子で文字列を比較をするには、値の比較と同様に==演算子を使います。次のプログラムで確認してみましょう。

using System;

namespace Sample
{
    class Sample
    {
        static void Main()
        {
            string str1 = "Samurai";
            string str2 = "Samurai";

            if (str1 == str2)
            {
                Console.WriteLine("同じ文字列です");
            }
            else
            {
                Console.WriteLine("違う文字列です");
            }

            Console.ReadKey();
        }
    }
}

実行結果:

同じ文字列です

詳しくはこちらで詳しく解説していますので、ぜひ参考にしてください。

【C#入門】Equalsメソッドと==演算子で文字列が等しいかを比較する
更新日 : 2018年5月18日

文字列が含まれているか判定する方法

指定の文字列が含まれているか判定するには、IndexOfメソッドやContainsメソッドを使う方法があります。

IndexOfで文字列の位置を検索する方法

IndexOfメソッドを使うと指定した文字、文字列の位置を取得することができます。サンプルコードで確認しましょう。

using System;
 
namespace Sample
{
  class Sample
  {
    static void Main()
    {
      string str = "Hello World!";
      string target = "l";
      
      int num = str.IndexOf(target) + 1;
      
      if(num > 0) {
        Console.WriteLine("{0}は{1}番目にあります", target, num);  
      } else {
        Console.WriteLine("{0}は見つかりませんでした", target);
      }
      
      Console.ReadKey();
    }
  }
}

実行結果:

lは3番目にあります

IndexOfメソッドの使い方については、こちらで詳しく解説していますので、ぜひ参考にしてください。

【C#入門】IndexOfで文字列やList、配列を検索する方法
更新日 : 2019年5月7日

Containsで文字列が含まれているか判定する方法

Containsメソッドを使うと、文字列の中に指定した対象が含まれるか確認することができます。サンプルコードで確認しましょう。

using System;
namespace Sample
{
  class Sample
  {
    static void Main()
    {
      string str = "Hello World!";
      string target = "W";
      
      if(str.Contains(target)) {
        Console.WriteLine("{0}が見つかりました", target);  
      } else {
        Console.WriteLine("{0}は見つかりませんでした", target);
      }
      
      Console.ReadKey();
    }
  }
}

実行結果:

Wが見つかりました

Compareメソッドの使い方については、こちらで詳しく解説していますので、ぜひ参考にしてください。

【C#入門】Containsで値が含まれるか調べる方法(文字列/配列/List)
更新日 : 2019年4月4日

StartsWith、EndsWithで文字列の始まりと終わりを判定

StartsWithメソッドとEndsWithメソッドは、引数に検索する文字列を指定します。次のプログラムで使い方を確認してみましょう。

using System;

namespace Sample
{
    class Sample
    {
        static void Main()
        {
            string str = "SamuraiEngineerJuku";

            if (str.StartsWith("Samurai"))
            {
                Console.WriteLine("前方一致しました");
            }
            else
            {
                Console.WriteLine("前方一致しませんでした");
            }

            if (str.EndsWith("Juku"))
            {
                Console.WriteLine("後方一致しました");
            }
            else
            {
                Console.WriteLine("後方一致しませんでした");
            }

            Console.ReadKey();
        }
    }
}

実行結果:

前方一致しました
後方一致しました

詳しくはこちらで詳しく解説していますので、ぜひ参考にしてください。

【C#入門】StartsWith、EndsWithで文字列の始まりと終わりを判定
更新日 : 2019年5月28日

文字列の検索方法まとめ

「IndexOfメソッド」、「Containsメソッド」、「StartsWith、EndsWithメソッド」などを使った文字列の検索方法はこちらの記事でまとめて解説しているので、ぜひ参考にしてください。

【C#入門】文字列の検索方法まとめ(IndexOf/Contains/StartsWith)
更新日 : 2018年5月17日

Substringで文字列の一部分を取得する方法

Substringメソッドを使うと、文字列の一部分を取得することができます。

using System;
 
namespace Sample
{
  class Sample
  {
    static void Main()
    {
      string str = "侍エンジニア塾";
      Console.WriteLine(str.Substring(1, 5));
      
      Console.ReadKey();
    }
  }
}

実行結果:

エンジニア

このサンプルコードでは、Substringメソッドを使って開始位置と文字数を指定して、文字列strから部分文字列の一部分を抜き出しています。Substringメソッドの使い方については、こちらで詳しく解説していますので、ぜひ参考にしてください。

【C#入門】String.Substringで文字列の指定部分を抜き出す方法
更新日 : 2019年4月19日

削除する方法

ここでは、文字列を削除する方法についていくつかご紹介します。

Trimで空白を削除する方法

Trimメソッドは、文字列の先頭と末尾に付いている空白文字や指定文字を削除するために使います。

using System;
 
namespace Sample
{
  class Sample
  {
    static void Main()
    {
      string str = "\t 侍エンジニア塾 \r\n";
      
      Console.WriteLine(str.Trim());
      Console.ReadKey();
    }
  }
}

実行結果:

侍エンジニア塾

Trimメソッドの使い方については、こちらで詳しく解説していますので、ぜひ参考にしてください。

【C#入門】Trimで文頭、文末の文字を削除(TrimStart、TrimEndも解説)
更新日 : 2019年5月3日

Removeで文字列を削除する方法

Removeメソッドを使うと文字列の一部を削除することができます。

using System;

namespace Sample
{
  class Sample
  {
    static void Main()
    {
      string str = "侍エンジニア塾";
      Console.WriteLine(str.Remove(1, 5));
      
      Console.ReadKey();
    }
  }
}

実行結果:

侍塾

このサンプルプログラムでは、Removeメソッドを使って文字列の一部を削除しています。Removeメソッドの第1引数で削除する文字列の先頭の位置をインデックス番号で指定しています。第2引数では削除する文字数を指定しています。

Removeメソッドの使い方については、こちらで詳しく解説していますので、ぜひ参考にしてください。

【C#入門】文字列を削除する方法総まとめ(Remove)
更新日 : 2019年6月11日

nullや空文字か判定する方法

c#には文字列がnullか空文字か判定する方法があります。

Emptyで空文字か判定する方法

Emptyフィールドを使うと、文字列が空文字か判定することができます。

using System;

namespace Sample
{
  class Sample
  {
    static void Main()
    {
      string str = "";
      
      if(str == String.Empty) {
        Console.WriteLine("strは空です");
      } else {
        Console.WriteLine("strは空ではありません");
      }
      
      Console.ReadKey();
    }
  }
}

実行結果:

strは空です

IsNullOrEmptyでnullか空文字か判定する方法

IsNullOrEmptyメソッドは、引数に指定した文字列がnullか空文字列の場合にTrueを返します。

using System;

namespace Sample
{
  class Sample
  {
    static void Main()
    {
      string str = null;
      
      if(String.IsNullOrEmpty(str)) {
        Console.WriteLine("strはnullです");
      } else {
        Console.WriteLine("strはnullではありません");
      }
      
      Console.ReadKey();
    }
  }
}

実行結果:

strはnullです

Replaceで置換する方法

Replaceメソッドは、文字列を検索して条件に一致する部分を置換するために使用します。

using System;
using System.Collections.Generic;

namespace Sample
{
    class Program
    {
        static void Main(string[] args)
        {
            string str1 = "apple, orange, melon, apple";
            string str2 = str1.Replace("apple", "banana");

            Console.WriteLine(str1);
            Console.WriteLine(str2);

            Console.ReadKey();
        }
    }
}

実行結果:

apple, orange, melon, apple
banana, orange, melon, banana

Replaceメソッドの使い方については、こちらで詳しく解説していますので、ぜひ参考にしてください。

【C#入門】StringクラスのReplaceメソッドで文字列を置換する方法
更新日 : 2019年8月7日

変換する方法

文字列を数値やDateTime型に変更する方法や、逆に文字列に変更する方法も用意されています。

数値に変換する方法

文字列を数値に変換するには、Parseメソッドを使う方法とConvertクラスを使う方法があります。ここではParseメソッドを使う方法をご紹介します。

using System;
 
namespace Sample
{
  class Sample
  {
    static void Main()
    {
      // int型に変換
      int i = int.Parse("123");
      Console.WriteLine(i);
      
      // long型に変換
      long l = long.Parse("123");
      Console.WriteLine(l);
      
      // float型に変換
      float f = float.Parse("123.456");
      Console.WriteLine(f);
      
      // double型に変換
      double d = double.Parse("123.456");
      Console.WriteLine(d);
      
      Console.ReadKey();
    }
  }
}

実行結果:

123
123
123.456
123.456

このサンプルコードでは、int、long、float、doubleそれぞれの構造体からParseメソッドを呼び出し、それぞれの型に変換しています。

DateTimeに変換する方法

文字列をDateTime型に変換するには、DateTimeクラスのParseメソッドを使います。

using System;

namespace Sample
{
  class Sample
  {
    static void Main()
    {
      string str = "2018/03/01";
      DateTime dt = DateTime.Parse(str);
      Console.WriteLine(dt);
      
      Console.ReadKey();
    }
  }
}

実行結果:

03/01/2018 00:00:00

逆にDateTime型に変換する方法については、こちらで詳しく解説しています。ぜひ参考にしてください。

【C#入門】ToStringで数値や日付を文字列に変換する方法
更新日 : 2018年10月30日

文字列に変換する方法

文字列に変換するには、ToStringメソッドを使います。ここでは数値を文字列に変換する方法をご紹介します。

using System;
 
namespace Sample
{
  class Sample
  {
    static void Main()
    {
      int num = 255;
      
      // int.ToStringメソッドを使う方法
      Console.WriteLine(num.ToString());
      
      Console.ReadKey();
    }
  }
}

実行結果:

255

文字列を数値に変換する方法、数値を文字列に変更する方法については、こちらで詳しく解説しています。ぜひ参考にしてください。

【C#入門】文字列を数値に、数値を文字列に変換する方法
更新日 : 2019年6月4日

まとめ

ここでは、Stringクラスについて説明しました。文字列を操作する必要がある場合はたくさんあります。使いこなすことができるように、この記事を何度も参考にして下さいね!

LINEで送る
Pocket

無料でSEからWebエンジニアへ転職しませんか?



侍エンジニア塾では、完全未経験の方から現在SEだけどプログラミングはやっていないという経験者まで、幅広い方々の人生を好転させるプログラミング指導を行ってきました。SEの方とお話していくなかで、

  • システムエンジニアという職業だけどコードが書けない
  • 事務作業が多くスキルがないため将来が不安
  • スクールに通うと完全未経験者と同じスタートになるからレベルが合わない
という、すでに知識があるSEならではのお悩みがあることに気づきました。そんな方におすすめなのが、弊社の「転職コース 」です。

弊社では、マンツーマンでレッスンを行いますので、現在お持ちの知識レベルからカリキュラムを作成いたします。さらにこちらの転職コースは無料で受講を始められて転職成功でそのまま卒業できるというとてもお得なコースとなっています。

既に知識のあるSEといっても転職は年齢が若いほど受かりやすいため、まずは無料体験レッスンで今の現状や理想の働き方について一緒に考えていきましょう。

まずは無料体験レッスンを予約する

書いた人

長野 透

長野 透

熊本在住のフリープログラマ兼ライターです。C/C++/C#、Java、Python、HTML/CSS、PHPを使ってプログラミングをしています。専門は画像処理で最近は機械学習、ディープラーニングにはまっています。幅広くやってきた経験を活かしてポイントをわかりやすくお伝えしようと思います。
お問合せはこちらでも受け付けています。
[email protected]

おすすめコンテンツ

あなたにぴったりなプログラミング学習プランを無料で診断!

プログラミング学習の効率を劇的に上げる学習メソッドを解説