teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

3

修正依頼のため

2019/06/04 09:51

投稿

kr_
kr_

スコア11

title CHANGED
@@ -1,1 +1,1 @@
1
- Ruby 2次元配列 挿入
1
+ Ruby 2次元配列 要素 挿入
body CHANGED
File without changes

2

修正依頼のため

2019/06/04 09:51

投稿

kr_
kr_

スコア11

title CHANGED
File without changes
body CHANGED
@@ -18,11 +18,52 @@
18
18
 
19
19
  ができるかどうか教えていただきたいです。
20
20
 
21
+
22
+ やりたいことはテキストファイルに
23
+ ```txt
24
+ 1
25
+ 内容
26
+ 2
27
+ 内容
28
+ 内容
29
+ 3
30
+ 内容
31
+ .
32
+ .
33
+ .
34
+ ```というファイルがあってこれを
35
+ [[1, 内容],
36
+ [2,内容,内容],
37
+ [3,内容]]
38
+ という配列にしたいと思っています。
39
+
40
+ 現在書いているのはこのコードです。
21
41
  ```Ruby
22
- #2次元配列の初期化
42
+ #! ruby -Ku
43
+
44
+ cur_dir = Dir.pwd
45
+
46
+ before_list = []
23
- list = Array.new(2) { Array.new(2,0) }
47
+ after_list = Array.new(2) { Array.new(2,0) }
48
+ list_size = 0
49
+
50
+ File.open(cur_dir + "/hoge.txt", "r") do |file|
51
+ before_list = file.readlines
52
+ end
53
+
54
+ before_list.each { |line|
55
+ contents_size = 0
56
+ if line.match(/^[0-9]+$/)
57
+ after_list[list_size][0] = line[0]
58
+ list_size += 1
59
+ else
24
- list[hoge].push(hogehoge)
60
+ after_list[list_size].push(hoge)
61
+ contents_size += 1
62
+ end
63
+ }
64
+
25
65
  ```
66
+
26
67
  をしても
27
68
  undefined method 'push' for nil:NilClass(NoMethodError)
28
69
  と出てきてしまいます。

1

ミスで記入途中で投稿してしまったため、内容を記入した。

2019/06/04 09:33

投稿

kr_
kr_

スコア11

title CHANGED
File without changes
body CHANGED
@@ -2,9 +2,27 @@
2
2
 
3
3
  Rubyの2次元配列にpushをしようとしています。例えば
4
4
 
5
+ [ [0, 0, 0],
5
- [
6
+ [0, 0, 0] ]
6
7
 
8
+ が用意されている2次元配列に新たにpushをして
7
9
 
10
+ [ [0, 0, 0, 1, 1],
11
+ [0, 0, 0] ]
8
12
 
13
+ ができるかどうか、または
9
14
 
15
+ [ [0, 0, 0, 1, 1],
16
+ [0, 0, 0],
17
+ [0, 0, 0]]
18
+
19
+ ができるかどうか教えていただきたいです。
20
+
21
+ ```Ruby
22
+ #2次元配列の初期化
23
+ list = Array.new(2) { Array.new(2,0) }
24
+ list[hoge].push(hogehoge)
10
- ]
25
+ ```
26
+ をしても
27
+ undefined method 'push' for nil:NilClass(NoMethodError)
28
+ と出てきてしまいます。