Ruby - 基本的な文法 - String 文字列


クラウディア 


1. 概要
2. 文字列の分割 split
3. 検索 include?
4. 文字列の削除 delete
5. 配列のような使い方
6. コーテーションの違い
7. 文字列の連結
8. 参考サイト

1. 概要

 「ruby」には、いわゆる、整数や実数の型というのはなく、型に相当するものはクラスしかないわけで。  文字列を扱うとすべては基本「String」クラスになるようなのです。

2. 文字列の分割 split

 他の言語でもおなじみ「split()」

str.split(pattern = $;, [limit])
 引数「pattern」を区切り文字として文字列を分割し、配列を返します。  引数の指定のしかたによってさまざまな分割ができます。  分割できなかったときは、要素が文字列1つだけの配列を返します。
string1 = 'a=b'

array1 = string1.split('=')

array1.each do | value |
  puts("#{value}")
end

 上記のソースを実行すると下記の結果が得られます。

a
b

3. 検索 include?

string1 = 'aabbccvddeeffgg'
string2 = 'zzzzzabczzzzzzz'
string3 = 'abc'

if (string1.include?(string3))
  puts("#{__LINE__} string1=[#{string1}] は string3=[#{string3}] を含む");
else
  puts("#{__LINE__} string1=[#{string1}] は string3=[#{string3}] を含まない");
end

if (string2.include?(string3))
  puts("#{__LINE__} string2=[#{string2}] は string3=[#{string3}] を含む");
else
  puts("#{__LINE__} string2=[#{string2}] は string3=[#{string3}] を含まない");
end

 上記のソースを実行すると下記の結果が得られます。

8 string1=[aabbccvddeeffgg] は string3=[abc] を含まない
12 string2=[zzzzzabczzzzzzz] は string3=[abc] を含む

4. 文字列の削除 delete

 わたしこれを部分文字列を削除するものと勘違いいたしておりました。  そうではなくて delete の引数で指定している文字を削除するものでありました。
string1 = 'aabbccvddeeffgg'

puts("#{__LINE__} string1=[#{string1}]")

string2 = string1.delete('abc')

puts("#{__LINE__} string1=[#{string1}] string2=[#{string2}]")

string2 = string1.delete!('efg')

puts("#{__LINE__} string1=[#{string1}] string2=[#{string2}]")

 上記のソースを実行すると下記の結果が得られます。

3 string1=[aabbccvddeeffgg]
7 string1=[aabbccvddeeffgg] string2=[vddeeffgg]
11 string1=[aabbccvdd] string2=[aabbccvdd]

5. 配列のような使い方

 文字列を [] で表現して、ちょっと C言語の char 型に似たような扱い(あくまでも似たような・・・であって全然別物ではあります)ができます。  [開始位置,文字数] で表現します。開始位置をマイナスにすると末尾からの文字数になります。
string1 = 'abcdefghij'

puts("#{__LINE__} string1の長さ=[#{string1.length}]");
puts("#{__LINE__} string1の0開始から2文字分=[#{string1[0,2]}]");
puts("#{__LINE__} string1の1から2文字分=[#{string1[1,2]}]");

puts("#{__LINE__} string1の末尾から2文字分=[#{string1[-1,2]}]");
puts("#{__LINE__} string1の末尾2から2文字分=[#{string1[-2,2]}]");


 上記のソースを実行すると下記の結果が得られます。

3 string1の長さ=[10]
4 string1の0開始から2文字分=[ab]
5 string1の1から2文字分=[bc]
7 string1の末尾から2文字分=[j]
8 string1の末尾2から2文字分=[ij]

6. コーテーションの違い

 '(シングルコーテーション)と "(ダブルコーテーション)の違いは、他の多くのスクリプト言語と同じく。  '(シングルコーテーション)は変数の展開をしない。  "(ダブルコーテーション)は変数の展開をする。  ということのようです。

#!/usr/bin/env ruby

value = 1

puts("#{value}")
puts('#{value}')
 を実行すると以下のようになります。

1
#{value}
 違いは歴然です。

7. 文字列の連結

 文字列の連結は、単に + の演算子でよいようです。

#!/usr/bin/env ruby

value = 'abc' + 'def'

puts("#{value}")
 を実行すると以下のようになります。

abcdef
 実際には、他の構文があって、大量の文字列連結を行うにはそちらの方が速度が速いようです。  困ったときには読もう~~~っと「Ruby の文字列連結に関して知っておくべきこと」。

8. 参考サイト

 本ページは、下記のサイトを参考にさせていただきました。
Ruby 2.5.0 リファレンスマニュアル > ライブラリ一覧 > 組み込みライブラリ > String クラス 

audiobook.jp
AbemaTV 無料体験
葬送のフリーレン Prime Video
ネットオークションの相場、統計、価格比較といえばオークファン
損保との違い
ベルリッツ
5G CONNECT
それがだいじWi-Fi
U-NEXT
JETBOY
EaseUS
EMEET 1
サウンドハウス
TikTok Shop 【リピート用プログラム】
薬屋の独り言
健康サポート特集
Amazonギフトカード
ハイスピードプラン
アフィリエイトのアクセストレード
【usus ウズウズ】
earthcar(アースカー)