C#/VB.NET 文字列を分割・結合する方法まとめ(split/join/concat/+演算子)

文字列を区切り文字で分割したり、連結したいです。どのようにすればよいですか?

文字列の分割には、Split 関数を使うといいですよ。文字列の連結には、Join 関数を使うと、簡単に文字列を連結することができます。

目次

Split で区切文字ごとに文字を分割する方法

 StringオブジェクトのSplitメソッドを使用すると、文字列を指定した区切り文字で分割することができます。Splitメソッドは指定した区切り文字で文字列を分割します。分割された文字列は、配列として返されます

文字列.Split(区切文字)

 Splitメソッドは文字列を区切り文字、文字列で分割し、配列に格納することができます。複数の区切り文字や文字列を指定することもできます。また、StringSplitOptions.RemoveEmptyEntries オプションを指定すると、分割された結果が空の場合は配列に格納しないことができます。

Splitメソッドは、様々な区切り文字や文字列で文字列を分割することができます。それぞれの場合について詳しく説明しましょう。

カンマ区切りの文字列を配列に変換する方法

 カンマ区切りの文字列をSplitメソッドを使用して配列に変換することができます。

文字列.Split(“,”)

string moji = "あいう,かきく,さしす";
//指定文字「,」で分割
var ret = moji.Split(",");

foreach (var X in ret)
{
    Debug.WriteLine(X);
}
Dim moji As String = "あいう,かきく,さしす"
'指定文字「,」で分割
Dim ret = moji.Split(",")

For Each X In ret
    Debug.WriteLine(X)
Next
あいう
かきく
さしす

 上記のサンプルでは、カンマを区切り文字として指定しています。カンマ以外の区切り文字を使用する場合は、区切り文字を文字型(Char型)で指定する必要があります。

改行で区切られた文字列を配列に変換する方法

 Splitメソッドで改行を区切り文字として指定するには、Environment.NewLineを使用することができます。

改行を含む文字列を改行で分割することができるため、改行で区切られた文字列を簡単に配列に変換することができます。

string moji = "あいう" + Environment.NewLine + "かきく" + Environment.NewLine + "さしす";
//指定文字「改行文字」で分割
var ret = moji.Split(Environment.NewLine);

foreach (var X in ret)
{
    Debug.WriteLine(X);
}
Dim moji As String = "あいう" & Environment.NewLine & "かきく" & Environment.NewLine & "さしす"
'指定文字「改行文字」で分割
Dim ret = moji.Split(Environment.NewLine)

For Each X In ret
    Debug.WriteLine(X)
Next
あいう
かきく
さしす

スペースで分割する方法

splitメソッド、文字列をスペースで分割することができます。

string input = "こんにちは 世界";
string[] output = input.Split(' ');

foreach (string s in output)
{
    Console.WriteLine(s);
}
Dim input As String = "こんにちは 世界"
Dim output As String() = input.Split(" "c)

For Each s As String In output
    Console.WriteLine(s)
Next
こんにちは
世界

 この例では、input文字列を半角スペースで分割し、output配列に格納しています。そして、foreach文を使って、output配列の要素を順に表示しています。

文字列で分割する方法

splitメソッドは、複数文字の文字列でも分割することができます。

string input = "こんにちは, 世界";
string[] output = input.Split(new string[] { ", " }, StringSplitOptions.None);

foreach (string s in output)
{
    Console.WriteLine(s);
}
Dim input As String = "こんにちは, 世界"
Dim output As String() = input.Split(New String() {", "}, StringSplitOptions.None)

For Each s As String In output
    Console.WriteLine(s)
Next
こんにちは
世界

 この例では、input文字列を”,”と空白文字で分割し、output配列に格納しています。そして、foreach文を使って、output配列の要素を順に表示しています。

CHECK

Splitメソッドの引数に「null」を指定すると、空白を指定した扱いになります。

+演算子を使って文字列を結合する

文字列同士を単純に結合するには+ 演算子を使用すると簡単です。

例えば、文字列 “Hello” と “World” を結合する場合は、以下のように記述します。

string str1 = "Hello";
string str2 = "World";
string result = str1 + " " + str2;
Dim str1 As String = "Hello"
Dim str2 As String = "World"
Dim result As String = str1 & " " & str2

Joinで文字コレクションを区切り文字を指定して連結する方法

 StringオブジェクトのJoinメソッドを利用することで、文字コレクションの要素を1つの文字列に連結することができます。

 文字列を区切り文字で連結するには、StringオブジェクトのJoinメソッドを使います。第一引数には、区切り文字を指定します。

String.Join(区切文字, 文字コレクション)

また、第二引数以降に開始インデックスや連結する要素数を指定することで、連結の範囲を限定することもできます。

String.Join(区切文字, 文字コレクション, 開始インデックス, 連結要素数)

例えば、以下のように、文字コレクションをカンマで区切って連結することができます。

string[] words = {"apple","banana","cherry"};
string sentence = String.Join(",", words);

Console.WriteLine(sentence);  // Output: "apple,banana,cherry"
Dim words As String() = {"apple", "banana", "cherry"}
Dim sentence As String = String.Join(",", words)
Console.WriteLine(sentence) ' Output: "apple,banana,cherry"

 上記のサンプルでは、文字列配列をカンマで連結しています。文字列配列をJoinメソッドに渡すことで、各要素をカンマで区切って1つの文字列に連結することができます。

また、開始インデックスや連結する要素数を指定することで、連結の範囲を限定することもできます。

string[] words = {"apple","banana","cherry"};
string sentence = String.Join(",", words,1,2);
Console.WriteLine(sentence);  // Output: "banana,cherry"
Dim words As String() = {"apple", "banana", "cherry"}
Dim sentence As String = String.Join(",", words, 1, 2)
Console.WriteLine(sentence) ' Output: "banana,cherry"

このように、String.Joinメソッドを使うことで、文字コレクションを区切り文字を指定して連結することができます。

Concatを使って区切り文字を使わずに文字列を結合する方法

StringオブジェクトのConcatメソッドを利用することで、区切り文字を使わずに文字を結合させることができます。

String.Concat(文字コレクション)

List<string> lstMoji = new List<string> { "あいう", "かきく", "さしす" };
//区切り文字を使わずに連結
var ret = string.Concat(lstMoji);

Debug.WriteLine(ret);
Dim lstMoji As New List(Of String)() From {"あいう", "かきく", "さしす"}
'区切り文字を使わずに連結
Dim ret = String.Concat(lstMoji)

Debug.WriteLine(ret)
あいうかきくさしす

リスキリングでキャリアアップしてみませんか?

リスキリング(学び直し)は、経済産業省が推奨しており、

今だけ、最大70%のキャッシュバックを受けることができます。

リスキリング 給付金が出るスクール紹介

最大70%の給付金が出るおすすめのプログラミングスクール!

国策で予算が決められているため申し込みが多い場合は早期に終了する可能性があります!

興味のある方はすぐに確認しましょう。

まとめ

文字列を分割する方法を解説しました。

  • Splitメソッドを使用すると、文字列を指定した区切り文字で分割することができます。
  • 分割された文字列は、配列として返されます。
  • 複数の区切り文字や文字列を指定することもできます。
  • StringSplitOptions.RemoveEmptyEntries オプションを指定すると、分割された結果が空の場合は配列に格納しないことができます。

また、文字列を結合する方法を解説しました。

  • +演算子を使って文字列を結合できます。
  • Joinメソッドを使って文字コレクションを区切り文字を指定して連結します。
    • 第一引数には、区切り文字を指定します。
    • 第二引数以降に開始インデックスや連結する要素数を指定することで、連結の範囲を限定することもできます。
  • Concatメソッドを使って区切り文字を使わずに文字列を結合できます。

文字列を区切る方法や、結合する方法についていろんな手法を学ぶことができました!

その状況にあった最適な手法を選べるように色々な手法を使えるようになっておくことが重要です。

Microsoft Learnの解説

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメントする

CAPTCHA


目次