string型の文字列で指定した位置の文字を取得する

このページのタグ:[C#]
string型の文字列で指定した位置の文字を取得するコードを紹介します。

概要

string型の文字列で特定の文字にアクセスするには添え字を利用します。

書式

(string型変数)[インデックス番号]
インデックス番号は0から始まる整数値で0が先頭の文字となります。


  char c = strname[4]

プログラム例

UI

下図のUIを作成します。

コード

下記のコードを記述します。

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace StringIndex
{
  public partial class FormMain : Form
  {
    public FormMain()
    {
      InitializeComponent();
    }

    private void button1_Click(object sender, EventArgs e)
    {
      string value = "Penguin";
      char c = value[3];
      textBox1.Text = "char:" + c.ToString();
    }

    private void button2_Click(object sender, EventArgs e)
    {
      string value = "しろくまさん";
      char c = value[4];
      textBox1.Text = "char:" + c.ToString();
    }

    private void button3_Click(object sender, EventArgs e)
    {
      string value = "あひるとPenguinでセット";
      char c = value[8];
      textBox1.Text = "char:" + c.ToString();
    }
  }
}

解説

button1


      string value = "Penguin";
      char c = value[3];
      textBox1.Text = "char:" + c.ToString();
value変数の文字列"Penguin"の[3]にアクセスすることで、4文字目の文字を取得します。4文字目は"g"ですので、テキストボックスに"g"の文字を表示します。

button2


      string value = "しろくまさん";
      char c = value[4];
      textBox1.Text = "char:" + c.ToString();
value変数の文字列"しろくまさん"の[4]にアクセスすることで、5文字目の文字を取得します。5文字目の"さ"がテキストボックスに表示されます。

button3


      string value = "あひるとPenguinでセット";
      char c = value[8];
      textBox1.Text = "char:" + c.ToString();
value変数の文字列"あひるとPenguinでセット"の[8]にアクセスすることで、9文字目の文字を取得します。9文字目の"u"がテキストボックスに表示されます。

実行結果

プロジェクトを実行します。アプリケーションが起動し、下図のウィンドウが表示されます。


[button1]をクリックします。"Penguin"の4文字目"g"がテキストボックスに表示されます。


[button2]をクリックします。"しろくまさん"の5文字目"さ"がテキストボックスに表示されます。


[button3]をクリックします。"あひるとPenguinでセット"の9文字目"u"がテキストボックスに表示されます。


文字列から指定した位置にあるキャラクター(文字)を取得できました。

補足

string型への添え字でのアクセスは読み取り専用プロパティのアクセスと同等のため、下記のコードのように代入することはできません。

  string value = "Penguin";
  value[4] = 't';

上記コードをコンパイルするとすると、
CS0200 プロパティまたはインデクサー 'string.this[int]' は読み取り専用であるため、割り当てることはできません StringIndex
のエラーが発生しビルドに失敗します。


登録日 :2016-12-28    最終更新日 :2017-01-05
このページのタグ:[C#]
Japanese
プライバシー    iPentecについて
iPentec all rights reserverd. (ISDC)