如何对整数字符串数组求和?

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(&amp;:to_i)【参考方案2】:

总和 =0 l=list(input("输入要添加的列表")) 对于 l 中的 i: 如果 i.isdigit(): 总和=总和+我 别的: 继续 print("给定整数字符串的总和"+sum)

【讨论】:

这看起来不像是有效的 Ruby 代码。 您的答案可以通过额外的支持信息得到改进。请edit 添加更多详细信息,例如引用或文档,以便其他人可以确认您的答案是正确的。你可以找到更多关于如何写好答案的信息in the help center。

以上是关于如何对整数字符串数组求和?的主要内容,如果未能解决你的问题,请参考以下文章

对多维数组javascript中的所有整数求和

嵌入式 ARM 汇编编程例题(二维数组按规律求和,求两数 gcd / lcm,求数组 min / max,字符串复制,排序)

嵌入式 ARM 汇编编程例题(二维数组按规律求和,求两数 gcd / lcm,求数组 min / max,字符串复制,排序)

嵌入式 ARM 汇编编程例题(二维数组按规律求和,求两数 gcd / lcm,求数组 min / max,字符串复制,排序)

请问js中对象数组求和代码怎么实现?

递归地对数组中的整数求和