Ruby如何将字符序列映射为二维数组中的整数?

更新于
2026-10-10 00:38:13
1阅读来源:SEO问题
  • 内容介绍
  • 文章标签
  • 相关推荐

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

Ruby如何将字符序列映射为二维数组中的整数?

我遇到了一个问题,我无法解决我的生活。我正在编写一个Ruby应用程序(我已经是一个8年的PHP开发人员,刚开始使用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

但是如果你出于某种原因确实需要一个数组,那么你描述的方法就是最简单的.假设行字符串是单个字符’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}

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

Ruby如何将字符序列映射为二维数组中的整数?

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

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

标签:整数我

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

Ruby如何将字符序列映射为二维数组中的整数?

我遇到了一个问题,我无法解决我的生活。我正在编写一个Ruby应用程序(我已经是一个8年的PHP开发人员,刚开始使用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

但是如果你出于某种原因确实需要一个数组,那么你描述的方法就是最简单的.假设行字符串是单个字符’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}

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

Ruby如何将字符序列映射为二维数组中的整数?

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

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

标签:整数我