前提・実現したいこと
はじめまして。
まだ初心者ですが何かを作ってみたいと思い、しりとりをするプログラムを作成しています。
具体的には入力ファイルから単語を選び、ユーザーの入力に対してしりとりを行う仕様です。
現在は、特定の文字列でしりとりを終了するコードを作成しています。
質問はそのテストコードに関してです。
発生している問題
input_file内の文字「パナキ」とtest.rb内で定義した文字列「パナキ」が一致しません。
if文により、この2種類の文字列が一致するかどうかを確かめました。
どちらも同じ文字列なのだから、trueを返すかと思いました。
しかし、実際は予想と違い、falseが返されました。
以下の2点について、どなかたご教示ください。
・これはどういった違いから生じるのか?
・2つの文字列がtrueを返すにはどうすればいいか?
############################################
#test.rb
array = Array.new
i = 0 j = 0 file = File.open("input_file") file.each{|line| array[i] = line.strip i += 1 } file.close
file_string = array[0] # input_fileから読み込んだ文字列
string = "パナキ" # このファイルで定義した文字列
print "file_stringのクラス ",file_string.class,"\n"
print "stringのクラス ",string.class,"\n"
print "file_string ";p file_string
print "string ";p string
if file_string == string
puts "2つの文字列は一致します"
elsif
puts "2つの文字列は一致しません"
end
#########################################
input_file
コマンドライン
試したこと
・2つの文字列に対して,pコマンドを実行しました.
一方は「パナキ」と表示され、もう一方は「\u30D1\u30CA\u30AD」と表示されました。
この違いが原因であると思いましたが、解決には至りません。
・文字コードはinput_file、test.rbいずれも「utf-8」です。
補足情報(FW/ツールのバージョンなど)
入力ファイルです。
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/08/16 01:54