Ruby中如何将字符映射到2D数组中的整数,能问出长尾词吗?

2026-04-11 20:121阅读0评论SEO资讯
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计424个文字,预计阅读时间需要2分钟。

Ruby中如何将字符映射到2D数组中的整数,能问出长尾词吗?

我有一个问题,我无法为我的生活解决问题。我正在编写一个Ruby应用程序(我已经是一个PHP开发人员,已经8年了,刚开始使用Ruby),它出售音乐厅的门票。每个座位都有一行(a+...+z)和一个数字(1+...)。

我有一个问题,我不能为我的生活解决.我正在编写一个 Ruby应用程序(我已经是一个 PHP开发人员已经8年了,刚开始使用Ruby),它出售了音乐厅的门票.每个座位都有一行(a … z)和一个数字(1 … x).数据库模型的每个席位都有row(string)和num(int).

如何将数据库中的席位数组转换为二维数组?例如,座位A1将进入座位[1] [1] =“价值”;座位C4将映射到座位[3] [4] =值.问题是将行字符串转换为Ascii并减去偏移量?或者有更简单的方法吗?

非常感谢

最简单的方法可能是使用哈希.例如:seat [‘A’] [1] = value

Ruby中如何将字符映射到2D数组中的整数,能问出长尾词吗?

但是如果你出于某种原因确实需要一个数组,那么你描述的方法就是最简单的.假设行字符串是单个字符’A’到’Z’,您可以使用row_string [0] – ?A(或row_string [0] – ?A 1,如果您希望索引从1开始,如示例中所示).对于行AA位于行Z之后的多字符版本,您可以在1.8.7及更高版本中执行此操作:

row_num = row_string.bytes.inject(0) {|total, x| total = total * 26 + x - ?A + 1}

您可能希望事先将行字符串提升,只是为了安全起见.

在1.8.6及更低版本中,String没有字节方法.你可以通过这样做完成同样的事情:

row_num = 0 row_string.each_byte {|x| row_num = row_num * 26 + x - ?A + 1}

标签:整数

本文共计424个文字,预计阅读时间需要2分钟。

Ruby中如何将字符映射到2D数组中的整数,能问出长尾词吗?

我有一个问题,我无法为我的生活解决问题。我正在编写一个Ruby应用程序(我已经是一个PHP开发人员,已经8年了,刚开始使用Ruby),它出售音乐厅的门票。每个座位都有一行(a+...+z)和一个数字(1+...)。

我有一个问题,我不能为我的生活解决.我正在编写一个 Ruby应用程序(我已经是一个 PHP开发人员已经8年了,刚开始使用Ruby),它出售了音乐厅的门票.每个座位都有一行(a … z)和一个数字(1 … x).数据库模型的每个席位都有row(string)和num(int).

如何将数据库中的席位数组转换为二维数组?例如,座位A1将进入座位[1] [1] =“价值”;座位C4将映射到座位[3] [4] =值.问题是将行字符串转换为Ascii并减去偏移量?或者有更简单的方法吗?

非常感谢

最简单的方法可能是使用哈希.例如:seat [‘A’] [1] = value

Ruby中如何将字符映射到2D数组中的整数,能问出长尾词吗?

但是如果你出于某种原因确实需要一个数组,那么你描述的方法就是最简单的.假设行字符串是单个字符’A’到’Z’,您可以使用row_string [0] – ?A(或row_string [0] – ?A 1,如果您希望索引从1开始,如示例中所示).对于行AA位于行Z之后的多字符版本,您可以在1.8.7及更高版本中执行此操作:

row_num = row_string.bytes.inject(0) {|total, x| total = total * 26 + x - ?A + 1}

您可能希望事先将行字符串提升,只是为了安全起见.

在1.8.6及更低版本中,String没有字节方法.你可以通过这样做完成同样的事情:

row_num = 0 row_string.each_byte {|x| row_num = row_num * 26 + x - ?A + 1}

标签:整数