Rubyの初心者向け問題1-2:文字列操作を使いこなそう
この問題を解くために必要な知識:
【レベル1の知識】
コメントの書き方、変数と定数、基本データ型、四則演算と演算子、入力と出力、文字列操作、分岐処理(if、if~else、elsif、case)、繰り返し処理(for、while、until、each)、範囲(Range)、例外処理(begin-rescue-end)
<<前の問題 | 問題集Top |
次の問題>> |
Rubyの文法「文字列操作」とは
ここでは文字列操作の意味や使い方を復習します。必要ない方はここをクリックして練習問題へ飛びましょう。
Rubyでは、文字列を操作するための便利なメソッドが多数用意されています。
これらのメソッドを使うことで、文字列の内容を簡単に変更したり、情報を取得したりすることができます。
ここでは、いくつかの代表的な文字列操作を紹介します。
文字列を逆順にする reverse
reverse
メソッドを使うと、文字列の順番を逆にすることができます。
str = "ABcde" puts str.reverse # => "edcBA"
文字列を大文字に変換する upcase
upcase
メソッドを使うと、文字列をすべて大文字に変換できます。
puts str.upcase # => "ABCDE"
文字列を小文字に変換する downcase
downcase
メソッドは、文字列をすべて小文字に変換します。
puts str.downcase # => "abcde"
文字列の長さを取得する length
length
メソッドを使うと、文字列の長さ(文字数)を取得できます。
puts str.length # => 5
まとめ
Rubyでは、簡単なメソッドを使うだけで、文字列を自在に操作することができます。
これらの基本操作を使いこなすことで、より複雑な処理にも対応できるようになります。
Ruby練習問題1-2:文字列操作を使いこなそう
文字列を操作するプログラムを作成しましょう。
ユーザーから文字列を入力してもらい、その文字列の長さを取得したり、大文字や小文字に変換したり、文字列を逆順に表示したりします。
最終的に、入力された文字列に対してさまざまな操作を行い、その結果を画面に表示するプログラムを完成させましょう。
この問題の要件
以下の要件に従ってコードを完成させてください。
gets.chomp
を使用して、ユーザーから文字列を入力すること。- 入力された文字列の長さを
length
メソッドで取得すること。 - 文字列をすべて大文字に変換する
upcase
メソッドを使用すること。 - 文字列をすべて小文字に変換する
downcase
メソッドを使用すること。 - 文字列の最初の文字を大文字に変換する
capitalize
メソッドを使用すること。 - 文字列を逆順に表示する
reverse
メソッドを使用すること。 - 各操作の結果を
puts
を使って表示すること。
ただし、以下のような実行結果となること。
----- ↓出力される結果の例↓ -----
文字列を入力してください: Hello World 文字列の長さ:11 大文字に変換:HELLO WORLD 小文字に変換:hello world 最初の文字を大文字に変換:Hello world 文字列を逆順に表示:dlroW olleH
----- ↑出力される結果の例↑ -----
この問題を解くヒント
1からコードを組み立てることが難しい場合は、以下のヒントを開いて参考にしましょう。
正解のコードは上から順に以下のような構成となっています。
1.puts
を使ってユーザーに文字列の入力を促すメッセージを表示
2.gets.chomp
でユーザーの入力を受け取り、変数 input_string
に格納
3.文字列の長さを取得して、変数 length
に格納
4.文字列をすべて大文字に変換して、変数 upcase_string
に格納
5.文字列をすべて小文字に変換して、変数 downcase_string
に格納
6.文字列の最初の文字だけを大文字に変換して、変数 capitalize_string
に格納
7.文字列を逆順に並べ替えて、変数 reverse_string
に格納
8.puts
を使って、各操作結果を画面に表示
8-1. 文字列の長さを表示
8-2. 大文字に変換した文字列を表示
8-3. 小文字に変換した文字列を表示
8-4. 最初の文字を大文字に変換した文字列を表示
8-5. 逆順に並べた文字列を表示
以下のコードをコピーし、コメントに従ってコードを完成させて下さい。
# 文字列操作プログラム # ユーザーに文字列を入力させる puts "文字列を入力してください:" input_string = gets.chomp # 文字列の長さを取得 =begin 【穴埋め問題1】 ここにinput_stringの長さを取得して変数lengthに格納するコードを書いてください。 =end # 文字列をすべて大文字に変換 =begin 【穴埋め問題2】 ここにinput_stringを大文字に変換して変数upcase_stringに格納するコードを書いてください。 =end # 文字列をすべて小文字に変換 =begin 【穴埋め問題3】 ここにinput_stringを小文字に変換して変数downcase_stringに格納するコードを書いてください。 =end # 文字列の最初の文字だけを大文字に変換 =begin 【穴埋め問題4】 ここにinput_stringの最初の文字を大文字に変換して変数capitalize_stringに格納するコードを書いてください。 =end # 文字列を逆順に表示 =begin 【穴埋め問題5】 ここにinput_stringを逆順にして変数reverse_stringに格納するコードを書いてください。 =end # 各結果を表示 puts "文字列の長さ:#{length}" puts "大文字に変換:#{upcase_string}" puts "小文字に変換:#{downcase_string}" puts "最初の文字を大文字に変換:#{capitalize_string}" puts "文字列を逆順に表示:#{reverse_string}"
このヒントを見てもまだ回答を導き出すのが難しいと感じる場合は、先に正解のコードと解説を見て内容を理解するようにしましょう。
解答例
この問題の一つの正解例とそのコードの解説を以下に示します。
正解コードの例
例えば以下のようなプログラムが考えられます。
********************
# 文字列操作プログラム # ユーザーに文字列を入力させる puts "文字列を入力してください:" input_string = gets.chomp # gets.chomp はユーザーからの入力を受け取り、改行を除去します。 # 文字列の長さを取得 length = input_string.length # 文字列をすべて大文字に変換 upcase_string = input_string.upcase # 文字列をすべて小文字に変換 downcase_string = input_string.downcase # 文字列の最初の文字だけを大文字に変換 capitalize_string = input_string.capitalize # 文字列を逆順に表示 reverse_string = input_string.reverse # 各結果を表示 puts "文字列の長さ:#{length}" puts "大文字に変換:#{upcase_string}" puts "小文字に変換:#{downcase_string}" puts "最初の文字を大文字に変換:#{capitalize_string}" puts "文字列を逆順に表示:#{reverse_string}"
********************
正解コードの解説
このプログラムは、ユーザーが入力した文字列に対して、さまざまな文字列操作を行うものです。ここでは、各部分で何が行われているのかを説明します。
ユーザーからの文字列入力
puts "文字列を入力してください:" input_string = gets.chomp
puts
は画面にメッセージを表示するためのメソッドです。この場合、ユーザーに文字列の入力を求めています。gets
はキーボードからの入力を受け取るメソッドで、chomp
メソッドを使用して改行を削除します。結果として、入力された文字列がinput_string
という変数に格納されます。
文字列の長さを取得する
length = input_string.length
length
メソッドは、入力された文字列の長さを返します。たとえば、「hello」という文字列を入力すると、文字数は5となります。
文字列を大文字に変換する
upcase_string = input_string.upcase
upcase
メソッドは、文字列のすべての文字を大文字に変換します。たとえば、「hello」という文字列が「HELLO」に変わります。
文字列を小文字に変換する
downcase_string = input_string.downcase
downcase
メソッドは、文字列のすべての文字を小文字に変換します。たとえば、「HELLO」という文字列が「hello」に変わります。
文字列の最初の文字を大文字に変換する
capitalize_string = input_string.capitalize
capitalize
メソッドは、文字列の最初の文字を大文字にし、それ以降の文字を小文字にします。
たとえば、「hello world」という文字列が「Hello world」になります。
文字列を逆順に並べ替える
reverse_string = input_string.reverse
reverse
メソッドは、文字列を逆順に並べ替えます。たとえば、「hello」という文字列が「olleh」に変わります。
結果の表示
puts "文字列の長さ:#{length}" puts "大文字に変換:#{upcase_string}" puts "小文字に変換:#{downcase_string}" puts "最初の文字を大文字に変換:#{capitalize_string}" puts "文字列を逆順に表示:#{reverse_string}"
puts
を使って、各文字列操作の結果を画面に表示しています。
#{}
の中に変数を書き込むことで、その変数の値を文字列の中に挿入することができます。
この技法を文字列補完と呼びます。
<<前の問題 |
問題集Top |
次の問題>> |
この問題への質問・コメント
この問題を作成するにあたりAIを活用しています。
問題ないことは確認していますが、もし間違いや表現の違和感などありましたら、ご指摘頂けると大変助かります。