学生向けプログラミング入門 | 無料

学生向けにプログラミングを無料で解説。Java、C++、Ruby、PHP、データベース、Ruby on Rails, Python, Django

Ruby | 22 | StringBuffer

↓↓クリックして頂けると励みになります。



21 | 表の応用】 << 【ホーム】 >> 【23 | 構造体

StringBufferを用いたプログラム
StringBufferを用いたプログラム


RubyにはStringBufferという特定のクラスはありません。
しかし、StringBufferという用語は、一部のプログラミング言語(主にJavaなど)で文字列を効率的に操作するためのクラスを指すことがあります。

Rubyでは、文字列を効率的に操作するためにStringクラスがあります。
Stringクラスは可変であり、文字列の連結や置換などの操作が可能です。
RubyのStringクラスは、文字列を変更する操作が比較的高速であり、通常はStringBufferのような専用のクラスが必要ないほど効率的です。

そのため、Rubyの場合、通常はStringクラスを使用して文字列を操作します。
必要に応じて、文字列の連結などの操作が多い場合は、<<演算子+=演算子を使用して文字列を効率的に構築することができます。


StringBufferは、文字列に文字列を加えたりすることのできるメソッドですが、Rubyでの文字列連結は足し算するだけでいいです。

str = 'str1' + 'str2'



一般的には「<<」を使用した文字列連結が用いられます。

str = 'str1' << 'str2'

こちらの記述のほうが処理スピードが早いです。


Visual Studio Codeで以下のプログラムを作ってみましょう。


新規作成 【buffertest1.rb】

class Buffertest1

	def add( sb )
		sb << '11'
	end
end

sb = '00'

b=Buffertest1.new()
b.add( sb )
puts sb



出力結果です。

~/Desktop/Programming/RB $ ruby buffertest1.rb
 
0011



Visual Studio Codeで以下のプログラムを作ってみましょう。


新規作成 【buffertest2.rb】

class Buffertest2

	sb = 'start'
	puts sb
	puts '大きさ:' + sb.length().to_s

	# ファイルサイズ(バイト単位)
	puts '容量:' + sb.size().to_s + 'バイト'
	puts ''


	sb << '0123456789'
	puts sb
	puts '大きさ:' + sb.length().to_s
	puts '容量:' + sb.size().to_s + 'バイト'
	puts ''

	# 0番目に文字列を挿入する
	sb.insert( 0, 'abcdefg' )
	puts sb
	puts '大きさ:' + sb.length().to_s
	puts '容量:' + sb.size().to_s + 'バイト'
	puts ''

	sb.insert( 7, 'hijklmnopqrstuvwxyz')
	puts sb
	puts '大きさ:' + sb.length().to_s
	puts '容量:' + sb.size().to_s + 'バイト'
	puts ''

	# 指定した文字を消去
	sb.delete!('lmnopqrstu456')
	puts sb
	puts '大きさ:' + sb.length().to_s
	puts '容量:' + sb.size().to_s + 'バイト'
	puts ''

end



出力結果を見てみましょう。

~/Desktop/Programming/RB $ ruby buffertest2.rb
start
大きさ:5
容量:5バイト

start0123456789
大きさ:15
容量:15バイト

abcdefgstart0123456789
大きさ:22
容量:22バイト

abcdefghijklmnopqrstuvwxyzstart0123456789
大きさ:41
容量:41バイト

abcdefghijkvwxyza0123789
大きさ:24
容量:24バイト



21 | 表の応用】 << 【ホーム】 >> 【23 | 構造体




↓↓クリックして頂けると励みになります。

YAE C5 CLINIC(札幌美容クリニック)

関連記事(外部サイト)