如何对整数字符串数组求和?
Posted
技术标签:
【中文标题】如何对整数字符串数组求和?【英文标题】:How to sum an array of integer strings? 【发布时间】:2021-12-09 03:57:54 【问题描述】:问题:将数组字符串元素转换为整数求和。 我的代码:
ch = ["+7", "-3", "+10", "0"]
ch.to_i
soma = 0
string.each do |ch|
if ch.isdigit()
soma += ch.to_i
end
end
p(soma)
错误:
Traceback (most recent call last):
main.rb:2:in `<main>': undefined method `to_i' for ["+7", "-3", "+10", "0"]:Array (NoMethodError)
Did you mean? to_s
to_a
to_h
【问题讨论】:
代码第二行出现错误:ch.to_i
。您正在尝试将数组转换为整数,这不是有效的操作。 ruby 中也没有 ch.isdigit()
方法,除非你自己定义!
错误告诉你Array
类没有to_i
方法。您需要将to_i
应用于数组的各个元素,使用map
或显式地遍历数组(这会更慢)。
太棒了!我没有注意到这个细节。非常感谢!
string
未定义,没有 isdigit
方法。我不确定该代码是如何到达to_i
。
您的问题是什么?您的问题以“问题:”开头,然后包含两个陈述且没有问题。
【参考方案1】:
您需要在数组中的每个元素上调用to_i
,而不是在这一行ch.to_i
中的字符串数组上调用to_i
:
numbers = ["+7", "-3", "+10", "0"]
sum = 0
numbers.each do |element|
sum += element.to_i
end
puts sum
#=> 14
或简化并使用常见的 Ruby 习语:
numbers = ["+7", "-3", "+10", "0"]
numbers.map(&:to_i).sum
#=> 14
【讨论】:
或numbers.sum(&:to_i)
【参考方案2】:
总和 =0 l=list(input("输入要添加的列表")) 对于 l 中的 i: 如果 i.isdigit(): 总和=总和+我 别的: 继续 print("给定整数字符串的总和"+sum)
【讨论】:
这看起来不像是有效的 Ruby 代码。 您的答案可以通过额外的支持信息得到改进。请edit 添加更多详细信息,例如引用或文档,以便其他人可以确认您的答案是正确的。你可以找到更多关于如何写好答案的信息in the help center。以上是关于如何对整数字符串数组求和?的主要内容,如果未能解决你的问题,请参考以下文章
嵌入式 ARM 汇编编程例题(二维数组按规律求和,求两数 gcd / lcm,求数组 min / max,字符串复制,排序)
嵌入式 ARM 汇编编程例题(二维数组按规律求和,求两数 gcd / lcm,求数组 min / max,字符串复制,排序)
嵌入式 ARM 汇编编程例题(二维数组按规律求和,求两数 gcd / lcm,求数组 min / max,字符串复制,排序)