2014-07-09 69 views
-4

我需要存储由不同数据类型组成的用户输入。我需要将它们存储在一个特定的格式的阵列。例如,如果用户在文本框中输入 海1994 ,数据 海1994 应存储在数组等 ARR = [ '海',1994]用ruby存储数组中不同数据类型的数据

到目前为止完成:

home_controller.rb:

class HomeController < ApplicationController 

    def index 

    @data = params[:text1] 

    end 

end 

index.html.erb:

<form action = "/home/index" > 
    Please enter some data 
    <br> 
    <textarea name="text1" cols="40" rows="5"></textarea> 
    <br> 
    <br> 
    <input type="submit"/> 
</form> 
+0

...和你有什么这么远吗? – Bala

+0

你的问题是什么? – sawa

+0

我会修改我的问题到目前为止我所尝试过的。请稍候 – rinold

回答

0

你可以只分析它得到的各个部分,然后遍历它。我假定你将只处理字符串和整数:

def index 
    @data1 = params[:text1].split(" ").map do |entry| 
    if entry.to_i == 0 && entry != "0" # this is a string so leave it 
     entry 
    else 
     entry.to_i 
    end 
    end 
end 

,将采取你的“HAI 1994年”的输入,并返回数组["HAI", 1994]

+0

用户输入可以是任何数据类型,如字符串,文本,日期和时间,fixnum – rinold

+0

在这种情况下,您需要做更多的检查和格式匹配。您可以扩展if语句块作为示例,以识别您尝试识别的所有不同类型。 – Ross

+0

你能写出所有数据类型的完整代码吗? – rinold

0

这里是你的问题

程序的解决方案: -

class Program 

    def method(a) 

    b = [] 

    for i in 0..a-1 

     puts "enter a value" 

     b << gets.chomp.split(' ') # split the given string when it find a space between them 

    end 


    for j in 0..a-1 

     print "#{b} " 
    end 

    end 

end 

obj = Program.new 

puts "how many values you want to enter " 

k = gets.chomp 

obj.method(k.to_i) 

输出:

how many values you want to enter 

1 

enter a value 

1991 madhu 

[["1991", "madhu"]] 
+0

1991应该存储为整数,madhu应该作为字符串存储例如:[1991,“madhu”] – rinold

相关问题