我发现这两个问题和我要问的问题类似:
和
这将数组拆分为三个数组,每个数组有三个元素:
a.each_slice(3) do |x,y,z|
p [x,y,z]
end
所以如果我这样做(我的数组大小是1000):
a.each_slice(200) do |a,b,c,d,e|
p "#{a} #{b} #{c} #{d} #{e}"
end
这应该将我的数组分成5个数组,每个数组有200个成员?但事实并非如此?我实际需要做的是把200个随机元素放到5个数组中,我是不是在正确的轨道上,我该怎么做呢?
如何从字符串扫描和拆分中获得结果-正匹配和负匹配?等同于
def scan_and_split(string, regexp)
string.split(regexp).zip(string.scan(regexp))
end
scan_and_split("{T}: Add {W} or {U} to your mana pool. Adarkar Wastes deals 1 damage to you.", /\{[^ ]+\}/)
预期输出:
[["", "{T}"], [": Add ", "{W}"
我已经准备好了:
def split_array(array,size)
index = 0
results = []
if size > 0
while index <= array.size
res = array[index,size]
results << res if res.size != 0
index += size
end
end
return results
end
如果我在像split_array([1,2
是否有任何有效和简短的方法来对数组中的每3个元素进行求和?
ar = [1, 2, 3, 4, 5, 6, 7, 8, 1]
sum_ar = [6, 15, 16]
前三元素1+2+3=6
next 3 elements `4+5+6=15`
next 3 elements `7+8+1=15`
...
if there are only two elements left, sum them
我可以这样做:
y=0
s=ar.size/3
((0..s).step(3).to_a).each do |i|
sum_ar[y]=ar[i..i+2].inject
我是Ruby的新手,我试图通过传递两个值来创建本质上的图表表,一个是高度值,另一个是宽度值。在创建之后,我希望能够单独调用图上的每个点。我知道我需要创建一个散列和或数组来存储图上的每个点,但是我不知道如何迭代每个值。
例如
def graph_area(x, y)
x = 4
y = 2
# Given the above info my graph would have 8 points
# However I'm not sure how to make create an array that returns
# {[x1, y1] =&g
我在理解Ruby中的枚举数时遇到了麻烦。
如果我错了,请纠正我,o.enum_for(:arg)方法应该将对象转换为枚举器,并且对象o上的每次迭代都应该调用arg方法?让我困惑的是这行代码是如何工作的
[4, 1, 2, 0].enum_for(:count).each_with_index do |elem, index|
elem == index
end
它应该计算有多少元素等于它们在数组中的位置,它就可以工作了。然而,我不明白到底是怎么回事。each_with_index是否在每次迭代时都调用count方法?如果有人能解释一下,那就太好了。
我是Ruby的新手,我想知道如何自动化一个空数组来显示输入的数据,并按字母顺序排序,以及如何在大写和小写之间交替输入。我在这个网站上看到过类似的帖子,描述了如何实现这一点,但似乎不能让它工作。
下面是我的代码,这里使用的是示例:
目前,我的代码首先交替大小写,然后按字母顺序排序(创建两个列表)。我想要的只是一个列表,按字母顺序排列,并交替大小写。我希望这是有意义的,谢谢你的时间!
puts "Welcome to the word list!"
words = []
5.times do
puts "Please enter a word:"
用户定义了数组中的列的顺序。
order = [:col1, :col2, :col3]
由于用户定义的列的顺序,table的状态已更改,当前列的列表为
cols = [:col1, :col4, :col3, :col5]
对于给定的顺序,cols需要排序。在这种情况下,排序的列可能类似于这两种情况中的一种。
[:col2, :col3, :col4, :col5]
[:col2, :col3, :col5, :col4]
下面是我用来让它工作的代码。想知道有没有更好的方法。
#get rid of :col2 since it is not present in the cols lis
我需要编写一个方法,在给定一个句子的情况下,返回一个包含所有其他单词的数组。需要从单词中删除标点符号。我可以让它每隔一个单词就返回一次,但是我被困在删除标点符号上了。到目前为止,我是这样写的:
def alternate_words(str)
return_array = []
str.split.map.each_slice(2) do |x, y|
return_array << x
end
end
我在做一个像这样的项目:
用户输入他们想要的最小和最大难度。
程序读取有问题和答案的文件,并根据困难打印问题。
用户回答问题。
将用户的答案与实际答案进行比较。
该文件如下所示:
D 1
Q What color are the clouds?
A white
D 2
Q What is 3 + 4?
A 7
说我只想抓住D 1的问题和答案。我必须构建可以读取D 1和接下来两行( Q和A)的regex。这就是我到目前为止想出的:
if(File.exists?("quiz.txt"))
myFile = File.open("quiz.
我正在尝试使用Ruby和Regex将一个长字符串划分为由时间戳分隔的块,这些时间戳发生在整个字符串中。
“上午10:59. Lorem ipsum dolor,consectetur adipiscing elit. Phasellus at tincidunt >ante.上午3:30 . Aenean interdum,quam Sed tempor est,at >luctus 30 arcu et arcu. sed neque eros a sem hendrerit faucibus
这是我正在运行的循环,用来取出每个块。
while text.length &