![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
No.2ベストアンサー
- 回答日時:
エラーの理由はちゃんとメッセージに書いてありますよ。
can't convert nil into String
nilをString(文字列)に変換できない
よって、どちらかがnilということで
・array1[m]が文字列ではない
・array2[n]が文字列ではない
に該当します。具体的には
・termがnil
・dic_trans_noun[n]がnil
のどちらか、あるいは両方です。
さらに、 a+b は a.+(b)であること、nilには+メソッドが定義されていないことから、「nil+文字列」ではNoMethodErrorになります。
TypeErrorにはなっている、ということは、「文字列+nil」なので
・dic_trans_noun[n]がnil
が原因です。
dic_trans_noun[n]がnil、ということは次の2通りが考えられます
・実際にdic_trans_nounのn要素にnilが代入されている
・nがdic_trans_nounの範囲外になっている
dic_trans_nounについての記述がここには無いので、どちらの理由かは不明です。
対処法ですが
・nilの場合は別の処理をする
・nilにならないようにdic_trans_noun、またはnを調整する
となります。どちらがこのプログラムに求められる仕様なのかは、現在の情報だけでは。私には判断できません。
ありがとうございます。
nilのときは別の処理をするようにしました。
型変換みたいなものが必要かと思っていたのですが、
一部の要素だけが問題だったんですね。
No.1
- 回答日時:
具体的なエラーメッセージは何でしょう?
通常なら、それで問題なく文字列の結合ができます。
・array1が配列ではない
・array2が配列ではない
・mがarray1の範囲外
・nがarray2の範囲外
・array1[m]が文字列ではない
・array2[n]が文字列ではない
あたりが予想できますが、エラーメッセージを読まなければ、どれに該当するか(または、別の要因なのか)、わかりません。
この回答への補足
回答ありがとうございます。
次のようなプログラムになっています。
1 ###
2 out_find_term = Array.new
3
4 sentence_array.each{|sentence|
5 out_find_term.push ""
6 out_find_term.push "###" + sentence
7
8 n = 0
9 dic_term_noun.each{|term|
10 if /\b#{term}/ =~ sentence then
11 out_find_term.push term #辞書にあれば配列に入れる
12 out_find_term.push dic_trans_noun[n]
13 out_find_term.push "\n"
14
15 end
16 n = n + 1
17 }
18
この11行と12行を
a = term + dic_trans_noun[n]
out_find_term.push a に変えたのですが
うまくいきません。
(out_find_termを出力したときに、1行になるように結合させたいのです)
エラーメッセージは「in `+': can't convert nil into String (TypeError)」です。
out_find_term.push(term + dic_trans_noun[n])に変えても同じです。
(補足、遅くなってすみません)
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# c言語配列の結合についてです。 なぜうまくいかないのでしょうか。 #include <stdio.h 4 2022/05/30 22:42
- その他(プログラミング・Web制作) python質問 1 2023/08/14 11:54
- C言語・C++・C# c言語 プログラムのエラー 1 2023/02/11 20:31
- PHP PHPの構文で間違えが分からない 5 2022/07/11 16:38
- C言語・C++・C# str[j++]の意味 2 2022/08/30 16:20
- Excel(エクセル) PHPプログラムをエクセルに張り付けると検索ボックスがでてくる! 3 2022/05/08 07:10
- Excel(エクセル) Excel 文字列を結合するときに重複をなくしたい 関数・VBA 2 2022/12/12 10:40
- PHP SQLとPHPの連結方法がわからないのでアドバイスお願い致します 1 2022/07/12 12:16
- Excel(エクセル) エクセル 関数について質問です。 2 2022/10/03 11:14
- C言語・C++・C# C# 浮動小数の数値文字列化 1 2022/04/18 15:15
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
excelの、ある数式内の{}の意...
-
vbsでテキストファイル内の文字...
-
配列の値を置換するにはどうす...
-
VB6で配列を文字列に変換する方...
-
VC++について (VBで言うところ...
-
COLUMN(1:1)の意味を教え...
-
RichTextBoxの改行を認知してく...
-
VBAのWorksheetFunctionの引数...
-
Javaのプログラムをルビー言語に。
-
VB 配列の内容をファイルに書...
-
○桁にある数値を取得する VB.N...
-
【エクセル】 関数による電子...
-
copyRecordsetの数値16桁以上に...
-
丸いアイコンを丸く並る方法
-
初心者プログラミング
-
マイクロリアクターアレー
-
C#の問題です。 文字列型の配列...
-
フォームを開くときに、コンボ...
-
C言語 exitの使い方
-
jsp~jspにhiddenを使って変数...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
excelの、ある数式内の{}の意...
-
エクセルへのデータの貼付時に...
-
配列の値を置換するにはどうす...
-
初心者プログラミング
-
vbsでテキストファイル内の文字...
-
COLUMN(1:1)の意味を教え...
-
初心者が簡単なPowerShellスク...
-
VBAのWorksheetFunctionの引数...
-
RichTextBoxの改行を認知してく...
-
VBSで特定の文字列が含まれる場...
-
数値を浮動小数点32bitHEXコー...
-
エクセル、この関数の意味は?
-
in_addrからchar型の文字列の変換
-
VBAで配列に文字列が入らない?
-
○桁にある数値を取得する VB.N...
-
VB 配列の内容をファイルに書...
-
【エクセル】 関数による電子...
-
VB6で配列を文字列に変換する方...
-
VB.NET 2つの配列を連動して並...
-
VBAで配列内のマッチ
おすすめ情報